diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-06-01 19:09:49 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-06-03 10:41:09 +0200 |
| commit | 46c6ed89bf1a7de94496b853608ecd6f80776b58 (patch) | |
| tree | d6f8895362c143585938424d06c6a3a8ad82ab85 /pkg | |
| parent | a6bed217317a6de45a3bb0ca039c3aeae09075a3 (diff) | |
pkg/ifuzz: move from ifuzz
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/ifuzz/decode.go | 212 | ||||
| -rw-r--r-- | pkg/ifuzz/encode.go | 258 | ||||
| -rw-r--r-- | pkg/ifuzz/gen/all-enc-instructions.txt | 70609 | ||||
| -rw-r--r-- | pkg/ifuzz/gen/gen.go | 534 | ||||
| -rw-r--r-- | pkg/ifuzz/ifuzz.go | 299 | ||||
| -rw-r--r-- | pkg/ifuzz/ifuzz_test.go | 98 | ||||
| -rw-r--r-- | pkg/ifuzz/insns.go | 2175 | ||||
| -rw-r--r-- | pkg/ifuzz/pseudo.go | 792 | ||||
| -rw-r--r-- | pkg/ifuzz/xed.go | 65 |
9 files changed, 75042 insertions, 0 deletions
diff --git a/pkg/ifuzz/decode.go b/pkg/ifuzz/decode.go new file mode 100644 index 000000000..472b2e5c8 --- /dev/null +++ b/pkg/ifuzz/decode.go @@ -0,0 +1,212 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +package ifuzz + +import ( + "fmt" +) + +// Decode decodes instruction length for the given mode. +// It can have falsely decode incorrect instructions, +// but should not fail to decode correct instructions. +func Decode(mode int, text []byte) (int, error) { + if len(text) == 0 { + return 0, fmt.Errorf("zero-length instruction") + } + prefixes := prefixes32 + var operSize, immSize, dispSize, addrSize int + switch mode { + case ModeLong64: + operSize, immSize, dispSize, addrSize = 4, 4, 4, 8 + prefixes = prefixes64 + case ModeProt32: + operSize, immSize, dispSize, addrSize = 4, 4, 4, 4 + case ModeProt16, ModeReal16: + operSize, immSize, dispSize, addrSize = 2, 2, 2, 2 + default: + panic("bad mode") + } + prefixLen := 0 + var decodedPrefixes []byte + vex := false + if len(text) > 1 { + // There are only 2 32-bit instructions that look like VEX-prefixed but are actually not: LDS, LES. + // They always reference memory (mod!=3), but all VEX instructions have "mod=3" where LDS/LES would have mod. + if (text[0] == 0xc4 || text[0] == 0xc5) && (mode == ModeLong64 || text[1]&0xc0 == 0xc0) { + vex = true + } + // There is only one instruction that looks like XOP-prefixed but is actually not: POP. + // It always has reg=0, but all XOP instructions have "reg!=0" where POP would have reg. + if text[0] == 0x8f && text[1]&0x38 != 0 { + vex = true + } + } + var vexMap byte + if vex { + prefixLen = 3 + if text[0] == 0xc5 { + prefixLen = 2 + vexMap = 1 // V0F + } + if len(text) < prefixLen { + return 0, fmt.Errorf("bad VEX/XOP prefix") + } + if prefixLen == 3 { + vexMap = text[1] & 0x1f + } + text = text[prefixLen:] + } else { + decodedPrefixes = text + operSize1, immSize1, dispSize1, addrSize1 := operSize, immSize, dispSize, addrSize + for len(text) != 0 && prefixes[text[0]] { + switch text[0] { + case 0x66: + if immSize == 4 { + immSize1 = 2 + operSize1 = 2 + } else if immSize == 2 { + immSize1 = 4 + operSize1 = 4 + } + case 0x67: + if addrSize == 8 { + addrSize1 = 4 + } else if addrSize == 4 { + dispSize1 = 2 + addrSize1 = 2 + } else if addrSize == 2 { + dispSize1 = 4 + addrSize1 = 4 + } + } + if text[0] & ^byte(7) == 0x48 { + operSize1 = 8 + immSize1 = 4 + } + text = text[1:] + prefixLen++ + } + operSize, immSize, dispSize, addrSize = operSize1, immSize1, dispSize1, addrSize1 + decodedPrefixes = decodedPrefixes[:prefixLen] + if len(text) == 0 { + return 0, fmt.Errorf("no opcode, only prefixes") + } + } +nextInsn: + for _, insn := range modeInsns[mode][typeAll] { + if vex != (insn.Vex != 0) { + continue nextInsn + } + if vex && insn.VexMap != vexMap { + continue nextInsn + } + if insn.NoRepPrefix || insn.No66Prefix { + for _, p := range decodedPrefixes { + if len(insn.Prefix) != 0 && insn.Prefix[0] == p { + continue + } + switch p { + case 0xf2, 0xf3: + if insn.NoRepPrefix { + continue nextInsn + } + case 0x66: + if insn.No66Prefix { + continue nextInsn + } + } + } + } + text1 := text + for i, v := range insn.Opcode { + if len(text1) == 0 { + continue nextInsn + } + b := text1[0] + if insn.Srm && i == len(insn.Opcode)-1 { + b &^= 7 + } + if b != v { + continue nextInsn + } + text1 = text1[1:] + } + if insn.Modrm { + if len(text1) == 0 { + continue nextInsn + } + modrm := text1[0] + text1 = text1[1:] + mod := modrm >> 6 + rm := modrm & 7 + if !insn.NoSibDisp { + disp := 0 + if addrSize == 2 { + if mod == 1 { + disp = 1 + } else if mod == 2 || mod == 0 && rm == 6 { + disp = 2 + } + } else { + var sibbase byte + if mod != 3 && rm == 4 { + if len(text1) == 0 { + continue nextInsn + } + sib := text1[0] + text1 = text1[1:] + sibbase = sib & 7 + } + if mod == 1 { + disp = 1 + } else if mod == 2 || mod == 0 && rm == 5 || mod == 0 && sibbase == 5 { + disp = dispSize + } + } + if disp != 0 { + if len(text1) < disp { + continue nextInsn + } + text1 = text1[disp:] + } + } + } + immLen := 0 + for _, imm := range []int8{insn.Imm, insn.Imm2} { + switch imm { + case -1: + immLen += immSize + case -2: + immLen += addrSize + case -3: + immLen += operSize + default: + immLen += int(imm) + } + } + if immLen != 0 { + if len(text1) < immLen { + continue nextInsn + } + text1 = text1[immLen:] + } + for _, v := range insn.Suffix { + if len(text1) == 0 || text1[0] != v { + continue nextInsn + } + text1 = text1[1:] + } + return prefixLen + len(text) - len(text1), nil + } + return 0, fmt.Errorf("unknown instruction") +} + +var XedDecode func(mode int, text []byte) (int, error) + +var ( + prefixes32 = map[byte]bool{0x2E: true, 0x3E: true, 0x26: true, 0x64: true, 0x65: true, 0x36: true, 0x66: true, 0x67: true, 0xF3: true, 0xF2: true, 0xF0: true} + prefixes64 = map[byte]bool{0x2E: true, 0x3E: true, 0x26: true, 0x64: true, 0x65: true, 0x36: true, 0x66: true, 0x67: true, 0xF3: true, 0xF2: true, 0xF0: true, + 0x40: true, 0x41: true, 0x42: true, 0x43: true, 0x44: true, 0x45: true, 0x46: true, 0x47: true, + 0x48: true, 0x49: true, 0x4a: true, 0x4b: true, 0x4c: true, 0x4d: true, 0x4e: true, 0x4f: true} +) diff --git a/pkg/ifuzz/encode.go b/pkg/ifuzz/encode.go new file mode 100644 index 000000000..799def63a --- /dev/null +++ b/pkg/ifuzz/encode.go @@ -0,0 +1,258 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +// See Intel Software Developer’s Manual Volume 2: Instruction Set Reference +// and AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions +// for details of instruction encoding. + +package ifuzz + +import ( + "math/rand" +) + +func (insn *Insn) Encode(cfg *Config, r *rand.Rand) []byte { + if !insn.isCompatible(cfg) { + panic("instruction is not suitable for this mode") + } + if insn.Pseudo { + return insn.generator(cfg, r) + } + + var operSize, immSize, dispSize, addrSize int + switch cfg.Mode { + case ModeLong64: + operSize, immSize, dispSize, addrSize = 4, 4, 4, 8 + case ModeProt32: + operSize, immSize, dispSize, addrSize = 4, 4, 4, 4 + case ModeProt16, ModeReal16: + operSize, immSize, dispSize, addrSize = 2, 2, 2, 2 + default: + panic("bad mode") + } + + var code []byte + + rexR := false + var vvvv, vexR, vexX, vexB byte + + // LEGACY PREFIXES + if insn.Vex == 0 { + for r.Intn(3) == 0 { + // LOCK 0xF0 is always added to insn.Prefix + prefixes := []byte{ + 0x2E, // CS + 0x3E, // DS + 0x26, // ES + 0x64, // FS + 0x65, // GS + 0x36, // SS + } + if !insn.No66Prefix { + prefixes = append(prefixes, 0x66) // operand size + } + if cfg.Mode == ModeLong64 || !insn.Mem32 { + prefixes = append(prefixes, 0x67) // address size + } + if !insn.NoRepPrefix { + prefixes = append(prefixes, + 0xF3, // REP + 0xF2, // REPNE + ) + } + pref := prefixes[r.Intn(len(prefixes))] + code = append(code, pref) + } + + code = append(code, insn.Prefix...) + + // REX + var rex byte + if cfg.Mode == ModeLong64 && r.Intn(2) == 0 { + // bit 0 - B + // bit 1 - X + // bit 2 - R + // bit 3 - W + rex = byte(0x40 | r.Intn(16)) + if insn.Rexw == 1 { + rex |= 1 << 3 + } else if insn.Rexw == 1 { + rex &^= 1 << 3 + } + rexR = rex&0x4 != 0 + code = append(code, rex) + } + + operSize1, immSize1, dispSize1, addrSize1 := operSize, immSize, dispSize, addrSize + for _, pref := range code { + switch pref { + case 0x66: + if immSize == 4 { + immSize1 = 2 + operSize1 = 2 + } else if immSize == 2 { + immSize1 = 4 + operSize1 = 4 + } + case 0x67: + if addrSize == 8 { + addrSize1 = 4 + } else if addrSize == 4 { + dispSize1 = 2 + addrSize1 = 2 + } else if addrSize == 2 { + dispSize1 = 4 + addrSize1 = 4 + } + } + if rex&(1<<3) != 0 { + operSize1 = 8 + immSize1 = 4 + } + } + operSize, immSize, dispSize, addrSize = operSize1, immSize1, dispSize1, addrSize1 + } else { + // VEX/VOP + code = append(code, insn.Vex) + vexR = byte(1) + vexX = byte(1) + if cfg.Mode == ModeLong64 { + vexR = byte(r.Intn(2)) + vexX = byte(r.Intn(2)) + } + vexB = byte(r.Intn(2)) + W := byte(r.Intn(2)) + if insn.Rexw == 1 { + W = 1 + } else if insn.Rexw == -1 { + W = 0 + } + L := byte(r.Intn(2)) + if insn.VexL == 1 { + L = 1 + } else if insn.VexL == -1 { + L = 0 + } + pp := byte(r.Intn(4)) + if insn.VexP != -1 { + pp = byte(insn.VexP) + } + vvvv = 15 + if !insn.VexNoR { + vvvv = byte(r.Intn(16)) + } + code = append(code, vexR<<7|vexX<<6|vexB<<5|insn.VexMap) + code = append(code, W<<7|vvvv<<3|L<<2|pp) + // TODO: short encoding + if cfg.Mode != ModeLong64 { + vvvv |= 8 + } + } + + // OPCODE + code = append(code, insn.Opcode...) + + if insn.Srm { + rm := byte(insn.Rm) + if insn.Rm == -1 { + rm = byte(r.Intn(8)) + } + code[len(code)-1] |= rm + } else if insn.Modrm { + // MODRM + var mod byte + switch insn.Mod { + case 0, 1, 2, 3: + mod = byte(insn.Mod) + case -1: + mod = byte(r.Intn(4)) + case -3: + mod = byte(r.Intn(3)) + } + + reg := byte(insn.Reg) + if insn.Reg == -1 { + reg = byte(r.Intn(8)) + } else if insn.Reg == -6 { + reg = byte(r.Intn(6)) // segment register + } else if insn.Reg == -8 { + if rexR { + reg = 0 // CR8 + } else { + crs := []byte{0, 2, 3, 4} + reg = crs[r.Intn(len(crs))] + } + } + if insn.Avx2Gather { + if reg|(1-vexR)<<3 == vvvv^0xf { + reg = (reg + 1) & 7 + } + } + + rm := byte(insn.Rm) + if insn.Rm == -1 { + rm = byte(r.Intn(8)) + } + + modrm := mod<<6 | reg<<3 | rm + code = append(code, modrm) + + if !insn.NoSibDisp { + if addrSize == 2 { + if mod == 1 { + // disp8 + code = append(code, generateArg(cfg, r, 1)...) + } else if mod == 2 || mod == 0 && rm == 6 { + // disp16 + code = append(code, generateArg(cfg, r, 2)...) + } + } else { + var sibbase byte + if mod != 3 && rm == 4 { + // SIB + scale := byte(r.Intn(4)) + index := byte(r.Intn(8)) + sibbase = byte(r.Intn(8)) + if insn.Avx2Gather { + rrrr := reg | (1-vexR)<<3 + for { + iiii := index | (1-vexX)<<3 + if iiii != vvvv^0xf && iiii != rrrr { + break + } + index = (index + 1) & 7 + } + } + sib := scale<<6 | index<<3 | sibbase + code = append(code, sib) + } + + if mod == 1 { + // disp8 + code = append(code, generateArg(cfg, r, 1)...) + } else if mod == 2 || mod == 0 && rm == 5 || mod == 0 && sibbase == 5 { + // disp16/32 + code = append(code, generateArg(cfg, r, dispSize)...) + } + } + } + } + + addImm := func(imm int) { + if imm == -1 { + imm = immSize + } else if imm == -2 { + imm = addrSize + } else if imm == -3 { + imm = operSize + } + if imm != 0 { + code = append(code, generateArg(cfg, r, imm)...) + } + } + addImm(int(insn.Imm)) + addImm(int(insn.Imm2)) + + code = append(code, insn.Suffix...) + return code +} diff --git a/pkg/ifuzz/gen/all-enc-instructions.txt b/pkg/ifuzz/gen/all-enc-instructions.txt new file mode 100644 index 000000000..9afe5353b --- /dev/null +++ b/pkg/ifuzz/gen/all-enc-instructions.txt @@ -0,0 +1,70609 @@ + + +###FILE: ../xed/datafiles/xed-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + + +INSTRUCTIONS():: +{ +ICLASS : FADD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FMUL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCOMP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUBR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIV +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIVR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FADD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FMUL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCOM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD8 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87STATUS:w:SUPP + +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} + +{ +ICLASS : FCOM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP + +COMMENT : UNDOC DC D0..D7 is an undocumented alaias (see sandpile.org) +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +IFORM : FCOM_ST0_X87_DCD0 +} + + +{ +ICLASS : FCOMP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} + +{ +ICLASS : FCOMP +ATTRIBUTES: NOTSX +COMMENT : UNDOC ALIASES +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +IFORM : FCOMP_ST0_X87_DCD1 + +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +IFORM : FCOMP_ST0_X87_DED0 +} + + +{ +ICLASS : FSUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUBR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIV +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIVR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD8 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:mem32real REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FST +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem32real REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem32real REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP + +PATTERN : 0xDB MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem80real REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP + +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:w:m64real REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDD MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=X87():w:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP + +COMMENT : UNDOC ALIASES +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=X87():w:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +IFORM : FSTP_X87_ST0_DFD0 + +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=X87():w:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +IFORM : FSTP_X87_ST0_DFD1 +} + +{ +ICLASS : FSTPNCE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +COMMENT : UNDOC ALIASES - empty top of stack behavior differs from FSTP. +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=X87():w:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} + + + +{ +ICLASS : FLDENV +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_CONTROL NOTSX +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b100] RM[nnn] EOSZ=1 MODRM() +OPERANDS : MEM0:r:mem14 REG0=XED_REG_X87STATUS:w:SUPP +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b100] RM[nnn] EOSZ!=1 MODRM() +OPERANDS : MEM0:r:mem28 REG0=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDCW +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:mem16 REG0=XED_REG_X87CONTROL:w:SUPP REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FNSTENV +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_NOWAIT X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] EOSZ=1 MODRM() +OPERANDS : MEM0:w:mem14 REG0=XED_REG_X87STATUS:w:SUPP +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] EOSZ!=1 MODRM() +OPERANDS : MEM0:w:mem28 REG0=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FNSTCW +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_NOWAIT X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xD9 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem16 REG0=XED_REG_X87CONTROL:r:SUPP REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87PUSH:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FXCH +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():rw:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FXCH +ATTRIBUTES: NOTSX +CPL : 3 +COMMENT : UNDOC ALIAS +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():rw:f80 REG2=XED_REG_X87STATUS:w:SUPP +IFORM : FXCH_ST0_X87_DFC1 + +PATTERN : 0xDD MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 REG1=X87():rw:f80 REG2=XED_REG_X87STATUS:w:SUPP +IFORM : FXCH_ST0_X87_DDC1 +} + + + +{ +ICLASS : FNOP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: NOP X87_CONTROL NOTSX +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b010] RM[0b000] +OPERANDS : +} +{ +ICLASS : FCHS +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b100] RM[0b000] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FABS +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b100] RM[0b001] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FTST +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b100] RM[0b100] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FXAM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b100] RM[0b101] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLD1 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b000] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDL2T +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b001] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDL2E +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b010] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDPI +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b011] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDLG2 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b100] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDLN2 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b101] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLDZ +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b101] RM[0b110] +OPERANDS : REG0=XED_REG_ST0:w:SUPP:f80 REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : F2XM1 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b000] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FYL2X +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b001] +OPERANDS : REG0=XED_REG_ST0:r:SUPP:f80 REG1=XED_REG_ST1:rw:SUPP:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FPTAN +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-mod fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b010] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_ST1:w:SUPP:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FPATAN +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b011] +OPERANDS : REG0=XED_REG_ST0:r:SUPP:f80 REG1=XED_REG_ST1:rw:SUPP:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FXTRACT +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b100] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_ST1:w:SUPP:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FPREM1 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b101] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_ST1:r:SUPP:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDECSTP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b110] +OPERANDS : REG0=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FINCSTP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b110] RM[0b111] +OPERANDS : REG0=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FPREM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b000] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_ST1:r:SUPP:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FYL2XP1 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b001] +OPERANDS : REG0=XED_REG_ST0:r:SUPP:f80 REG1=XED_REG_ST1:rw:SUPP:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSQRT +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b010] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSINCOS +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-mod fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b011] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_ST1:w:SUPP:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FRNDINT +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b100] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSCALE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b101] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_ST1:r:SUPP:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSIN +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-mod fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b110] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCOS +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-mod fc3-u ] +PATTERN : 0xD9 MOD[0b11] MOD=3 REG[0b111] RM[0b111] +OPERANDS : REG0=XED_REG_ST0:rw:SUPP:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIADD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIMUL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FICOM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FICOMP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISUBR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIDIV +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIDIVR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ cf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ zf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVBE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ cf-tst zf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVU +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ pf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDA MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FUCOMPP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDA MOD[0b11] MOD=3 REG[0b101] RM[0b001] +OPERANDS : REG0=XED_REG_ST0:r:SUPP:f80 REG1=XED_REG_ST1:r:SUPP:f80 REG2=XED_REG_X87POP2:rw:SUPP REG3=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FILD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:mem32int REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISTTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : SSE3 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem32int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIST +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem32int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem32int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:mem80real REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVNB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ cf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVNE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ zf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVNBE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ cf-tst zf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCMOVNU +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FCMOV +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ pf-tst fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:cw:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FNCLEX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_NOWAIT X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b100] RM[0b010] +OPERANDS : REG0=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FNINIT +CPL : 3 +ATTRIBUTES : x87_mmx_state_w X87_NOWAIT X87_CONTROL NOTSX +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b100] RM[0b011] +OPERANDS : REG0=XED_REG_X87CONTROL:w:SUPP REG1=XED_REG_X87TAG:w:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSETPM287_NOP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: NOP NOTSX +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b100] RM[0b100] +OPERANDS : +COMMENT : UNDOC +} +{ +ICLASS : FENI8087_NOP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: NOP NOTSX +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b100] RM[0b000] +OPERANDS : +COMMENT : UNDOC +} +{ +ICLASS : FDISI8087_NOP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: NOP NOTSX +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b100] RM[0b001] +COMMENT : UNDOC +OPERANDS : +} + + +{ +ICLASS : FUCOMI +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ zf-mod pf-mod cf-mod af-0 sf-0 of-0 fc1-mod ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCOMI +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ zf-mod pf-mod cf-mod af-0 sf-0 of-0 fc1-mod ] +PATTERN : 0xDB MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FADD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FMUL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCOMP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUBR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIV +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIVR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FADD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FMUL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUBR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FSUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIVR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FDIV +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDC MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FLD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:m64real REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISTTP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : SSE3 +ATTRIBUTES : NOTSX +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:w:m64int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FST +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:w:m64real REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FRSTOR +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : x87_mmx_state_w X87_CONTROL NOTSX +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b100] RM[nnn] EOSZ=1 MODRM() +OPERANDS : MEM0:r:mem94 REG0=XED_REG_X87CONTROL:w:SUPP +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b100] RM[nnn] EOSZ!=1 MODRM() +OPERANDS : MEM0:r:mem108 REG0=XED_REG_X87CONTROL:w:SUPP +} +{ +ICLASS : FNSAVE +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : x87_mmx_state_r x87_mmx_state_w X87_NOWAIT X87_CONTROL NOTSX +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b110] RM[nnn] EOSZ=1 MODRM() +OPERANDS : MEM0:w:mem94 \ + REG0=XED_REG_X87CONTROL:rw:SUPP \ + REG1=XED_REG_X87TAG:rw:SUPP \ + REG3=XED_REG_X87STATUS:rw:SUPP + +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b110] RM[nnn] EOSZ!=1 MODRM() +OPERANDS : MEM0:w:mem108 \ + REG0=XED_REG_X87CONTROL:rw:SUPP \ + REG1=XED_REG_X87TAG:rw:SUPP \ + REG3=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FNSTSW +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_NOWAIT X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xDD MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem16 REG0=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FFREE +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xDD MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=X87():r:f80 REG1=XED_REG_X87TAG:w:SUPP +} +{ +ICLASS : FST +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDD MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=X87():w:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FUCOM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDD MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FUCOMP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDD MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FIADD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIMUL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FICOM +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FICOMP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISUBR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIDIV +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIDIVR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:rw:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FADDP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +COMMENT : 2011-02-10: the pop essentially occurs later. faddp st2 reads st2,st0 and writes st1. but xed says st2 is written. No other way to do it. +} +{ +ICLASS : FMULP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +COMMENT : 2011-02-10: the pop essentially occurs later. fmulp st2 reads st2,st0 and writes st1. but xed says st2 is written. No other way to do it. +} +{ +ICLASS : FCOMPP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-mod fc1-mod fc2-mod fc3-mod ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b011] RM[0b001] +OPERANDS : REG0=XED_REG_ST0:r:SUPP:f80 REG1=XED_REG_ST1:r:SUPP:f80 REG2=XED_REG_X87POP2:r:SUPP REG3=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FSUBRP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +COMMENT : 2011-02-10: the pop essentially occurs later. fsubrp st2 reads st2,st0 and writes st1. but xed says st2 is written. No other way to do it. + +} +{ +ICLASS : FSUBP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +COMMENT : 2011-02-10: the pop essentially occurs later. fsubp st2 reads st2,st0 and writes st1. but xed says st2 is written. No other way to do it. +} +{ +ICLASS : FDIVRP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +COMMENT : 2011-02-10: the pop essentially occurs later. fdivrp st2 reads st2,st0 and writes st1. but xed says st2 is written. No other way to do it. + +} +{ +ICLASS : FDIVP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDE MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=X87():rw:f80 REG1=XED_REG_ST0:r:IMPL:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +COMMENT : 2011-02-10: the pop essentially occurs later. fdivp st2 reads st2,st0 and writes st1. but xed says st2 is written. No other way to do it. +} +{ +ICLASS : FILD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:mem16int REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISTTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : SSE3 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem16int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FIST +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem16int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem16int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FBLD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:mem80dec REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FILD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : REG0=XED_REG_ST0:w:IMPL:f80 MEM0:r:m64int REG1=XED_REG_X87PUSH:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FBSTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:w:mem80dec REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FISTP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +FLAGS : MUST [ fc0-u fc1-mod fc2-u fc3-u ] +PATTERN : 0xDF MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:w:m64int REG0=XED_REG_ST0:r:IMPL:f80 REG1=XED_REG_X87POP:r:SUPP REG2=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FFREEP +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES: X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=X87():r:f80 REG1=XED_REG_X87TAG:w:SUPP REG2=XED_REG_X87POP:r:SUPP +COMMENT : UNDOC +} +{ +ICLASS : FNSTSW +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_NOWAIT X87_CONTROL NOTSX +FLAGS : MUST [ fc0-u fc1-u fc2-u fc3-u ] +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b100] RM[0b000] +OPERANDS : REG0=XED_REG_AX:w:IMPL REG1=XED_REG_X87STATUS:rw:SUPP +} +{ +ICLASS : FUCOMIP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ zf-mod pf-mod cf-mod af-0 sf-0 of-0 fc1-mod ] +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : FCOMIP +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ISA_SET : PPRO +FLAGS : MUST [ zf-mod pf-mod cf-mod af-0 sf-0 of-0 fc1-mod ] +PATTERN : 0xDF MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=XED_REG_ST0:r:IMPL:f80 REG1=X87():r:f80 REG2=XED_REG_X87POP:r:SUPP REG3=XED_REG_X87STATUS:w:SUPP +} +{ +ICLASS : ADD_LOCK +DISASM : add +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADD_LOCK_MEMb_IMMb_80r0 +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADD_MEMb_IMMb_80r0 +} + + + +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b000] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : ADD_GPR8_IMMb_80r0 +} + + + +{ +ICLASS : OR_LOCK +DISASM : or +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : OR_LOCK_MEMb_IMMb_80r1 +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : OR_MEMb_IMMb_80r1 +} + + +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b001] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : OR_GPR8_IMMb_80r1 +} + + + +{ +ICLASS : ADC_LOCK +DISASM : adc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADC_LOCK_MEMb_IMMb_80r2 +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADC_MEMb_IMMb_80r2 +} + +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b010] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : ADC_GPR8_IMMb_80r2 +} + + +{ +ICLASS : SBB_LOCK +DISASM : sbb +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SBB_LOCK_MEMb_IMMb_80r3 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SBB_MEMb_IMMb_80r3 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b011] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : SBB_GPR8_IMMb_80r3 +} + + + +{ +ICLASS : AND_LOCK +DISASM : and +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : AND_LOCK_MEMb_IMMb_80r4 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : AND_MEMb_IMMb_80r4 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : AND_GPR8_IMMb_80r4 +} + +{ +ICLASS : SUB_LOCK +DISASM : sub +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SUB_LOCK_MEMb_IMMb_80r5 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SUB_MEMb_IMMb_80r5 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b101] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : SUB_GPR8_IMMb_80r5 +} + + + + + +{ +ICLASS : XOR_LOCK +DISASM : xor +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : XOR_LOCK_MEMb_IMMb_80r6 +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : XOR_MEMb_IMMb_80r6 +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : XOR_GPR8_IMMb_80r6 +} + +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x80 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() SIMM8() +OPERANDS : MEM0:r:b IMM0:r:b:i8 +IFORM : CMP_MEMb_IMMb_80r7 + +PATTERN : 0x80 MOD[0b11] MOD=3 REG[0b111] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():r IMM0:r:b:i8 +IFORM : CMP_GPR8_IMMb_80r7 +} +{ +ICLASS : ADD_LOCK +DISASM : add +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b000] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + + +{ +ICLASS : OR_LOCK +DISASM : or +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} + +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b001] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + + + + +{ +ICLASS : ADC_LOCK +DISASM : adc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b010] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + + +{ +ICLASS : SBB_LOCK +DISASM : sbb +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b011] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + + + + +{ +ICLASS : AND_LOCK +DISASM : and +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b100] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + +{ +ICLASS : SUB_LOCK +DISASM : sub +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b101] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + + + +{ +ICLASS : XOR_LOCK +DISASM : xor +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() SIMMz() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() SIMMz() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:z +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b110] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():rw IMM0:r:z +} + + + +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x81 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() SIMMz() +OPERANDS : MEM0:r:v IMM0:r:z +PATTERN : 0x81 MOD[0b11] MOD=3 REG[0b111] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():r IMM0:r:z +} + +{ +ICLASS : ADD_LOCK +DISASM : add +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b000] RM[nnn] not64 MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADD_LOCK_MEMb_IMMb_82r0 +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b000] RM[nnn] not64 MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADD_MEMb_IMMb_82r0 +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b000] RM[nnn] not64 SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : ADD_GPR8_IMMb_82r0 +} + + +{ +ICLASS : OR_LOCK +DISASM : or +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b001] RM[nnn] not64 MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : OR_LOCK_MEMb_IMMb_82r1 +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b001] RM[nnn] not64 MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : OR_MEMb_IMMb_82r1 +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b001] RM[nnn] not64 SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : OR_GPR8_IMMb_82r1 +} + + + +{ +ICLASS : ADC_LOCK +DISASM : adc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b010] RM[nnn] not64 MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADC_LOCK_MEMb_IMMb_82r2 +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b010] RM[nnn] not64 MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : ADC_MEMb_IMMb_82r2 +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b010] RM[nnn] not64 SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : ADC_GPR8_IMMb_82r2 +} + + + +{ +ICLASS : SBB_LOCK +DISASM : sbb +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b011] RM[nnn] not64 MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SBB_LOCK_MEMb_IMMb_82r3 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b011] RM[nnn] not64 MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SBB_MEMb_IMMb_82r3 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b011] RM[nnn] not64 SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : SBB_GPR8_IMMb_82r3 +} + + +{ +ICLASS : AND_LOCK +DISASM : and +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b100] RM[nnn] not64 MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : AND_LOCK_MEMb_IMMb_82r4 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b100] RM[nnn] not64 MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : AND_MEMb_IMMb_82r4 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b100] RM[nnn] not64 UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : AND_GPR8_IMMb_82r4 +} + + + +{ +ICLASS : SUB_LOCK +DISASM : sub +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b101] RM[nnn] not64 MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SUB_LOCK_MEMb_IMMb_82r5 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b101] RM[nnn] not64 MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b:i8 +IFORM : SUB_MEMb_IMMb_82r5 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b101] RM[nnn] not64 SIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:i8 +IFORM : SUB_GPR8_IMMb_82r5 +} + + +{ +ICLASS : XOR_LOCK +DISASM : xor +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b110] RM[nnn] not64 MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : XOR_LOCK_MEMb_IMMb_82r6 +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b110] RM[nnn] not64 MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : XOR_MEMb_IMMb_82r6 +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b110] RM[nnn] not64 UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : XOR_GPR8_IMMb_82r6 +} + +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x82 MOD[mm] MOD!=3 REG[0b111] RM[nnn] not64 MODRM() SIMM8() +OPERANDS : MEM0:r:b IMM0:r:b:i8 +IFORM : CMP_MEMb_IMMb_82r7 + +PATTERN : 0x82 MOD[0b11] MOD=3 REG[0b111] RM[nnn] not64 SIMM8() +OPERANDS : REG0=GPR8_B():r IMM0:r:b:i8 +IFORM : CMP_GPR8_IMMb_82r7 +} + +{ +ICLASS : ADD_LOCK +DISASM : add +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b000] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : OR_LOCK +DISASM : or +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b001] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : ADC_LOCK +DISASM : adc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b010] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : SBB_LOCK +DISASM : sbb +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b011] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : AND_LOCK +DISASM : and +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b100] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : SUB_LOCK +DISASM : sub +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b101] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : XOR_LOCK +DISASM : xor +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() SIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() SIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b:i8 +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b110] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:i8 +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x83 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() SIMM8() +OPERANDS : MEM0:r:v IMM0:r:b:i8 + +PATTERN : 0x83 MOD[0b11] MOD=3 REG[0b111] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_B():r IMM0:r:b:i8 +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8F MOD[mm] MOD!=3 REG[0b000] RM[nnn] DF64() MODRM() +OPERANDS : MEM0:w:v REG0=XED_REG_STACKPOP:r:spw:SUPP + +PATTERN : 0x8F MOD[0b11] MOD=3 REG[0b000] RM[nnn] DF64() +OPERANDS : REG0=GPRv_B():w REG1=XED_REG_STACKPOP:r:spw:SUPP +IFORM : POP_GPRv_8F +} + + +{ +ICLASS : ROL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod cf-mod ], IMMx MUST [ of-u cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b000] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +} +{ +ICLASS : ROL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod cf-mod ], IMMx MUST [ of-u cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b + +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b000] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} + +{ +ICLASS : ROR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod cf-mod ], IMMx MUST [ of-u cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b001] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +} + +{ +ICLASS : ROR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod cf-mod ], IMMx MUST [ of-u cf-mod ] +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b001] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +# 2009-02-09: THIS WAS MISSING ENTIRELY UNTIL NOW +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b +} + +{ +ICLASS : ROR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : ROR_MEMb_ONE + +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b001] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : ROR_GPR8_ONE +} + +{ +ICLASS : ROR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : ROR_MEMv_ONE + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b001] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : ROR_GPRv_ONE +} + + +{ +ICLASS : ROR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +} + +{ +ICLASS : ROR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL + +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +} + + + + + +{ +ICLASS : ROL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : ROL_MEMb_ONE +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b000] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : ROL_GPR8_ONE +} + +{ +ICLASS : ROL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : ROL_MEMv_ONE + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b000] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : ROL_GPRv_ONE +} +{ +ICLASS : ROL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u cf-mod ] # REMOVED cf-tst 2009-02-08 +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : ROL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL + +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +} + +################# + + + + +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod cf-tst cf-mod ], IMMx MUST [ of-u cf-tst cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod cf-tst cf-mod ], IMMx MUST [ of-u cf-tst cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b011] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : SHL_MEMb_IMMb_C0r4 + +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : SHL_GPR8_IMMb_C0r4 +} +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b101] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +IFORM : SHL_MEMb_IMMb_C0r6 + +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +IFORM : SHL_GPR8_IMMb_C0r6 +} +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : BYTEOP +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC0 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:b IMM0:r:b +PATTERN : 0xC0 MOD[0b11] MOD=3 REG[0b111] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b +} + +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod cf-tst cf-mod ], IMMx MUST [ of-u cf-tst cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b + +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod cf-tst cf-mod ], IMMx MUST [ of-u cf-tst cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b + +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b011] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b +IFORM : SHL_MEMv_IMMb_C1r4 + +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +IFORM : SHL_GPRv_IMMb_C1r4 +} +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b101] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b +IFORM : SHL_MEMv_IMMb_C1r6 + +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +IFORM : SHL_GPRv_IMMb_C1r6 +} +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I186 +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xC1 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rw:v IMM0:r:b +PATTERN : 0xC1 MOD[0b11] MOD=3 REG[0b111] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-tst cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : RCL_MEMb_ONE + +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b010] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : RCL_GPR8_ONE +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-tst cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : RCR_MEMb_ONE + +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b011] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : RCR_GPR8_ONE +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : SHL_MEMb_ONE_D0r4 + +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b100] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : SHL_GPR8_ONE_D0r4 + +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : SHL_MEMb_ONE_D0r6 + +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b110] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : SHL_GPR8_ONE_D0r6 +} +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : SHR_MEMb_ONE + +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b101] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : SHR_GPR8_ONE +} + +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP IMPLICIT_ONE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD0 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:b IMM0:r:b:IMPL +IFORM : SAR_MEMb_ONE +PATTERN : 0xD0 MOD[0b11] MOD=3 REG[0b111] RM[nnn] ONE() +OPERANDS : REG0=GPR8_B():rw IMM0:r:b:IMPL +IFORM : SAR_GPR8_ONE +} +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-tst cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : RCL_MEMv_ONE + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b010] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : RCL_GPRv_ONE +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod cf-tst cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : RCR_MEMv_ONE + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b011] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : RCR_GPRv_ONE +} + +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : SHR_MEMv_ONE + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b101] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : SHR_GPRv_ONE +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : SHL_MEMv_ONE_D1r6 + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b110] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : SHL_GPRv_ONE_D1r6 + +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : SHL_MEMv_ONE_D1r4 + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b100] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : SHL_GPRv_ONE_D1r4 +} + + +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : IMPLICIT_ONE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD1 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() ONE() +OPERANDS : MEM0:rw:v IMM0:r:b:IMPL +IFORM : SAR_MEMv_ONE + +PATTERN : 0xD1 MOD[0b11] MOD=3 REG[0b111] RM[nnn] ONE() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b:IMPL +IFORM : SAR_GPRv_ONE +} +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u cf-tst cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u cf-tst cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +IFORM : SHL_MEMb_CL_D2r4 + +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +IFORM : SHL_GPR8_CL_D2r4 +} +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +IFORM : SHL_MEMb_CL_D2r6 + +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +IFORM : SHL_GPR8_CL_D2r6 +} +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD2 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:rw:b REG0=XED_REG_CL:r:IMPL +PATTERN : 0xD2 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=XED_REG_CL:r:IMPL +} + +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u cf-tst cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL +} +{ +ICLASS : RCL +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u cf-tst cf-mod ] +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u cf-tst cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL +} +{ +ICLASS : RCR +CPL : 3 +CATEGORY : ROTATE +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u cf-tst cf-mod ] +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL +IFORM : SHL_MEMv_CL_D3r4 +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +IFORM : SHL_GPRv_CL_D3r4 +} +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL +} +{ +ICLASS : SHR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL +IFORM : SHL_MEMv_CL_D3r6 +} +{ +ICLASS : SHL +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +IFORM : SHL_GPRv_CL_D3r6 +} +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:rw:v REG0=XED_REG_CL:r:IMPL +} +{ +ICLASS : SAR +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0xD3 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=XED_REG_CL:r:IMPL +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMM8() +OPERANDS : MEM0:r:b IMM0:r:b:i8 +IFORM : TEST_MEMb_IMMb_F6r0 + +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMM8() +OPERANDS : MEM0:r:b IMM0:r:b:i8 +IFORM : TEST_MEMb_IMMb_F6r1 + +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b000] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():r IMM0:r:b:i8 +IFORM : TEST_GPR8_IMMb_F6r0 + +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b001] RM[nnn] SIMM8() +OPERANDS : REG0=GPR8_B():r IMM0:r:b:i8 +IFORM : TEST_GPR8_IMMb_F6r1 +} + +{ +ICLASS : NOT_LOCK +DISASM : not +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : NOT +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : NOT +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=GPR8_B():rw +} +{ +ICLASS : NEG_LOCK +DISASM : neg +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : NEG +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : NEG +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=GPR8_B():rw +} +{ +ICLASS : MUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:r:b REG0=XED_REG_AL:r:SUPP REG1=XED_REG_AX:w:SUPP +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPR8_B():r REG1=XED_REG_AL:r:SUPP REG2=XED_REG_AX:w:SUPP +} +{ +ICLASS : IMUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:b REG0=XED_REG_AL:r:SUPP REG1=XED_REG_AX:w:SUPP + +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=GPR8_B():r REG1=XED_REG_AL:r:SUPP REG2=XED_REG_AX:w:SUPP +} +{ +ICLASS : DIV +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-u sf-u zf-u af-u pf-u cf-u ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:r:b REG0=XED_REG_AX:rw:SUPP +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=GPR8_B():r REG1=XED_REG_AX:rw:SUPP +} +{ +ICLASS : IDIV +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-u sf-u zf-u af-u pf-u cf-u ] +PATTERN : 0xF6 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:r:b REG0=XED_REG_AX:rw:SUPP +PATTERN : 0xF6 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=GPR8_B():r REG1=XED_REG_AX:rw:SUPP +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMMz() +OPERANDS : MEM0:r:v IMM0:r:z +IFORM : TEST_MEMv_IMMz_F7r0 + +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() SIMMz() +OPERANDS : MEM0:r:v IMM0:r:z +IFORM : TEST_MEMv_IMMz_F7r1 + +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b000] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():r IMM0:r:z +IFORM : TEST_GPRv_IMMz_F7r0 + +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b001] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():r IMM0:r:z +IFORM : TEST_GPRv_IMMz_F7r1 +} +{ +ICLASS : NOT_LOCK +DISASM : not +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : NOT +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : NOT +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=GPRv_B():rw +} +{ +ICLASS : NEG_LOCK +DISASM : neg +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : NEG +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : NEG +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=GPRv_B():rw +} +{ +ICLASS : MUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=OrAX():rw:SUPP REG1=OrDX():w:SUPP +} +{ +ICLASS : MUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=OrAX():rw:SUPP REG2=OrDX():w:SUPP +} +{ +ICLASS : IMUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=OrAX():rw:SUPP REG1=OrDX():w:SUPP + +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=OrAX():rw:SUPP REG2=OrDX():w:SUPP +} +{ +ICLASS : DIV +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-u zf-u af-u pf-u cf-u ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=OrAX():rw:SUPP REG1=OrDX():rw:SUPP +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=OrAX():rw:SUPP REG2=OrDX():rw:SUPP +} +{ +ICLASS : IDIV +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-u zf-u af-u pf-u cf-u ] +PATTERN : 0xF7 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=OrAX():rw:SUPP REG1=OrDX():rw:SUPP +PATTERN : 0xF7 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=OrAX():rw:SUPP REG2=OrDX():rw:SUPP +} +{ +ICLASS : INC_LOCK +DISASM : inc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFE MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : INC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFE MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : INC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFE MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=GPR8_B():rw +} +{ +ICLASS : DEC_LOCK +DISASM : dec +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFE MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : DEC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFE MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b +} +{ +ICLASS : DEC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFE MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=GPR8_B():rw +} +{ +ICLASS : INC_LOCK +DISASM : inc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] + +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : INC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] + +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : INC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFF MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=GPRv_B():rw +IFORM : INC_GPRv_FFr0 +} +{ +ICLASS : DEC_LOCK +DISASM : dec +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] + +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : DEC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] + +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v +} +{ +ICLASS : DEC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0xFF MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=GPRv_B():rw +IFORM : DEC_GPRv_FFr1 +} +{ +ICLASS : CALL_NEAR +DISASM_INTEL: call +DISASM_ATTSV: call +CPL : 3 +CATEGORY : CALL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0xE8 not64 BRDISPz() +OPERANDS : RELBR:r:z REG0=XED_REG_STACKPUSH:w:spw:SUPP REG1=rIP():rw:SUPP +PATTERN : 0xE8 mode64 BRDISP32() DF64() FORCE64() +OPERANDS : RELBR:r:d REG0=XED_REG_STACKPUSH:w:spw:SUPP REG1=rIP():rw:SUPP + +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b010] RM[nnn] DF64() IMMUNE66_LOOP64() MODRM() +OPERANDS : MEM0:r:v REG0=XED_REG_STACKPUSH:w:spw:SUPP REG1=rIP():rw:SUPP +PATTERN : 0xFF MOD[0b11] MOD=3 REG[0b010] RM[nnn] DF64() IMMUNE66_LOOP64() +OPERANDS : REG0=GPRv_B():r REG1=XED_REG_STACKPUSH:w:spw:SUPP REG2=rIP():rw:SUPP +} +{ +ICLASS : JMP +CPL : 3 +CATEGORY : UNCOND_BR +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b100] RM[nnn] DF64() IMMUNE66_LOOP64() MODRM() +OPERANDS : MEM0:r:v REG0=rIP():w:SUPP +PATTERN : 0xFF MOD[0b11] MOD=3 REG[0b100] RM[nnn] DF64() IMMUNE66_LOOP64() +OPERANDS : REG0=GPRv_B():r REG1=rIP():w:SUPP +} +{ +ICLASS : JMP_FAR +DISASM_INTEL: jmp far +DISASM_ATTSV: ljmp +CPL : 3 +ATTRIBUTES : FAR_XFER NOTSX +CATEGORY : UNCOND_BR +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:p2 REG0=rIP():w:SUPP +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b110] RM[nnn] DF64() MODRM() +OPERANDS : MEM0:r:v REG0=XED_REG_STACKPUSH:w:spw:SUPP + +PATTERN : 0xFF MOD[0b11] MOD=3 REG[0b110] RM[nnn] DF64() +OPERANDS : REG0=GPRv_B():r REG1=XED_REG_STACKPUSH:w:spw:SUPP +IFORM : PUSH_GPRv_FFr6 +} +{ +ICLASS : SLDT +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE NOTSX +PATTERN : 0x0F 0x00 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : MEM0:w:w REG0=XED_REG_LDTR:r:SUPP + +PATTERN : 0x0F 0x00 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=GPRv_B():w REG1=XED_REG_LDTR:r:SUPP +} +{ +ICLASS : STR +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE NOTSX +PATTERN : 0x0F 0x00 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:w:w REG0=XED_REG_TR:r:SUPP + +PATTERN : 0x0F 0x00 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=GPRv_B():w REG1=XED_REG_TR:r:SUPP +} +{ +ICLASS : LLDT +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES : PROTECTED_MODE RING0 NOTSX +PATTERN : 0x0F 0x00 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:r:w REG0=XED_REG_LDTR:w:SUPP + +PATTERN : 0x0F 0x00 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=GPR16_B():r REG1=XED_REG_LDTR:w:SUPP +} +{ +ICLASS : LTR +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES : PROTECTED_MODE RING0 NOTSX +PATTERN : 0x0F 0x00 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:r:w REG0=XED_REG_TR:w:SUPP + +PATTERN : 0x0F 0x00 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=GPR16_B():r REG1=XED_REG_TR:w:SUPP +} +{ +ICLASS : VERR +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0x00 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:r:w +COMMENT : reads a selector +} +{ +ICLASS : VERR +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0x00 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPR16_B():r +COMMENT : reads a selector +} +{ +ICLASS : VERW +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0x00 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:w +COMMENT : reads a selector +} +{ +ICLASS : VERW +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0x00 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=GPR16_B():r +COMMENT : reads a selector +} +{ +ICLASS : LGDT +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b010] RM[nnn] mode64 FORCE64() MODRM() +OPERANDS : MEM0:r:s64 REG0=XED_REG_GDTR:w:SUPP +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b010] RM[nnn] not64 MODRM() +OPERANDS : MEM0:r:s REG0=XED_REG_GDTR:w:SUPP +} +{ +ICLASS : SMSW +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:w:w REG0=XED_REG_CR0:r:SUPP +} +{ +ICLASS : SMSW +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPRv_B():w REG1=XED_REG_CR0:r:SUPP +} +{ +ICLASS : LMSW +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +ATTRIBUTES: RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:r:w REG0=XED_REG_CR0:w:SUPP +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=GPR16_B():r REG1=XED_REG_CR0:w:SUPP +} +{ +ICLASS : BT +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:r:v IMM0:r:b +} +{ +ICLASS : BT +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():r IMM0:r:b +} +{ +ICLASS : BTS_LOCK +DISASM : bts +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b +} +{ +ICLASS : BTS +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b +} +{ +ICLASS : BTS +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[0b11] MOD=3 REG[0b101] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} +{ +ICLASS : BTR_LOCK +DISASM : btr +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b +} +{ +ICLASS : BTR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b +} +{ +ICLASS : BTR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} +{ +ICLASS : BTC_LOCK +DISASM : btc +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() UIMM8() lock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b +} +{ +ICLASS : BTC +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() UIMM8() nolock_prefix +OPERANDS : MEM0:rw:v IMM0:r:b +} +{ +ICLASS : BTC +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBA MOD[0b11] MOD=3 REG[0b111] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rw IMM0:r:b +} + +# NOTE: VMXON and VMCLEAR almost conflict when there is a redundant 66 +# on VMXON. It should be (and is) a VMXON. VMCLEAR is required to +# "not have" f2/f3; osz_refining_prefix handles this. + +{ +ICLASS : VMCLEAR +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b110] RM[nnn] osz_refining_prefix REFINING66() MODRM() +OPERANDS : MEM0:r:q +} +{ +ICLASS : VMPTRLD +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b110] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:r:q +} +{ +ICLASS : VMPTRST +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b111] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:w:q +} + + +{ +ICLASS : VMXON +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: PROTECTED_MODE NOTSX +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b110] RM[nnn] f3_refining_prefix IGNORE66() MODRM() +OPERANDS : MEM0:r:q +} +{ +ICLASS : CMPXCHG8B_LOCK +DISASM : cmpxchg8b +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : PENTIUMREAL +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] not64 IMMUNE66() MODRM() lock_prefix +OPERANDS : MEM0:rcw:q REG0=XED_REG_EDX:rcw:SUPP REG1=XED_REG_EAX:rcw:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_EBX:r:SUPP +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] mode64 norexw_prefix IMMUNE66() MODRM() lock_prefix +OPERANDS : MEM0:rcw:q REG0=XED_REG_EDX:rcw:SUPP REG1=XED_REG_EAX:rcw:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_EBX:r:SUPP +} +{ +ICLASS : CMPXCHG8B +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : PENTIUMREAL +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] not64 IMMUNE66() MODRM() nolock_prefix +OPERANDS : MEM0:rcw:q REG0=XED_REG_EDX:rcw:SUPP REG1=XED_REG_EAX:rcw:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_EBX:r:SUPP +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] mode64 norexw_prefix IMMUNE66() MODRM() nolock_prefix +OPERANDS : MEM0:rcw:q REG0=XED_REG_EDX:rcw:SUPP REG1=XED_REG_EAX:rcw:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_EBX:r:SUPP +} +{ +ICLASS : CMPXCHG16B_LOCK +DISASM : cmpxchg16b +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : LONGMODE +ISA_SET : CMPXCHG16B +ATTRIBUTES: REQUIRES_ALIGNMENT LOCKED +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] mode64 rexw_prefix IMMUNE66() MODRM() lock_prefix +OPERANDS : MEM0:rcw:dq REG0=XED_REG_RDX:rcw:SUPP REG1=XED_REG_RAX:rcw:SUPP REG2=XED_REG_RCX:r:SUPP REG3=XED_REG_RBX:r:SUPP +} +{ +ICLASS : CMPXCHG16B +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : LONGMODE +ISA_SET : CMPXCHG16B +ATTRIBUTES: REQUIRES_ALIGNMENT LOCKABLE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b001] RM[nnn] mode64 rexw_prefix IMMUNE66() MODRM() nolock_prefix +OPERANDS : MEM0:rcw:dq REG0=XED_REG_RDX:rcw:SUPP REG1=XED_REG_RAX:rcw:SUPP REG2=XED_REG_RCX:r:SUPP REG3=XED_REG_RBX:r:SUPP +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP + +PATTERN : 0xC6 MOD[0b11] MOD=3 REG[0b000] RM[nnn] UIMM8() +OPERANDS : REG0=GPR8_B():w IMM0:r:b +IFORM : MOV_GPR8_IMMb_C6r0 +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP HLE_REL_ABLE +PATTERN : 0xC6 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:b IMM0:r:b +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xC7 MOD[0b11] MOD=3 REG[0b000] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_B():w IMM0:r:z +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : HLE_REL_ABLE +PATTERN : 0xC7 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() SIMMz() +OPERANDS : MEM0:w:v IMM0:r:z +} +{ +ICLASS : PSRLW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x71 no_refining_prefix MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:u16 IMM0:r:b +} +{ +ICLASS : PSRAW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x71 no_refining_prefix MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:i16 IMM0:r:b +} +{ +ICLASS : PSLLW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x71 no_refining_prefix MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:u16 IMM0:r:b +} +{ +ICLASS : PSRLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x71 osz_refining_prefix MOD[0b11] MOD=3 REG[0b010] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u16 IMM0:r:b +} +{ +ICLASS : PSRAW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x71 osz_refining_prefix MOD[0b11] MOD=3 REG[0b100] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:i16 IMM0:r:b +} +{ +ICLASS : PSLLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x71 osz_refining_prefix MOD[0b11] MOD=3 REG[0b110] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u16 IMM0:r:b +} +{ +ICLASS : PSRLD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x72 no_refining_prefix MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:u32 IMM0:r:b +} +{ +ICLASS : PSRAD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x72 no_refining_prefix MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:i32 IMM0:r:b +} +{ +ICLASS : PSLLD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x72 no_refining_prefix MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:u32 IMM0:r:b +} +{ +ICLASS : PSRLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x72 osz_refining_prefix MOD[0b11] MOD=3 REG[0b010] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u32 IMM0:r:b +} +{ +ICLASS : PSRAD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x72 osz_refining_prefix MOD[0b11] MOD=3 REG[0b100] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:i32 IMM0:r:b +} +{ +ICLASS : PSLLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x72 osz_refining_prefix MOD[0b11] MOD=3 REG[0b110] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u32 IMM0:r:b +} +{ +ICLASS : PSRLQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x73 no_refining_prefix MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:u64 IMM0:r:b +} +{ +ICLASS : PSLLQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x73 no_refining_prefix MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_B():rw:q:u64 IMM0:r:b +} +{ +ICLASS : PSRLQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x73 osz_refining_prefix MOD[0b11] MOD=3 REG[0b010] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u64 IMM0:r:b +} +{ +ICLASS : PSRLDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x73 osz_refining_prefix MOD[0b11] MOD=3 REG[0b011] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u128 IMM0:r:b +} +{ +ICLASS : PSLLQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x73 osz_refining_prefix MOD[0b11] MOD=3 REG[0b110] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u64 IMM0:r:b +} +{ +ICLASS : PSLLDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x73 osz_refining_prefix MOD[0b11] MOD=3 REG[0b111] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_B():rw:dq:u128 IMM0:r:b +} +{ +ICLASS : FXSAVE +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +ISA_SET : FXSAVE +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r X87_NOWAIT X87_CONTROL NOTSX +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b000] RM[nnn] no_refining_prefix norexw_prefix MODRM() +OPERANDS : MEM0:w:mfpxenv REG0=XED_REG_X87CONTROL:r:SUPP +} +{ +ICLASS : FXRSTOR +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +ISA_SET : FXSAVE +ATTRIBUTES : xmm_state_w REQUIRES_ALIGNMENT x87_mmx_state_w X87_NOWAIT X87_CONTROL NOTSX +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b001] RM[nnn] no_refining_prefix norexw_prefix MODRM() +OPERANDS : MEM0:r:mfpxenv REG0=XED_REG_X87CONTROL:w:SUPP +} +{ +ICLASS : FXSAVE64 +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +ISA_SET : FXSAVE64 +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r X87_NOWAIT X87_CONTROL NOTSX +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b000] RM[nnn] no_refining_prefix rexw_prefix MODRM() +OPERANDS : MEM0:w:mfpxenv REG0=XED_REG_X87CONTROL:r:SUPP +} +{ +ICLASS : FXRSTOR64 +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +ISA_SET : FXSAVE64 +ATTRIBUTES : xmm_state_w REQUIRES_ALIGNMENT x87_mmx_state_w X87_NOWAIT X87_CONTROL NOTSX +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b001] RM[nnn] no_refining_prefix rexw_prefix MODRM() +OPERANDS : MEM0:r:mfpxenv REG0=XED_REG_X87CONTROL:w:SUPP +} + + + + + +{ +ICLASS : LDMXCSR +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +ISA_SET : SSEMXCSR +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : MXCSR +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b010] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:r:d REG0=XED_REG_MXCSR:w:SUPP +} +{ +ICLASS : STMXCSR +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +ISA_SET : SSEMXCSR +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : MXCSR_RD +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b011] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:w:d REG0=XED_REG_MXCSR:r:SUPP +} +{ +ICLASS : PREFETCHNTA +CPL : 3 +CATEGORY : PREFETCH +ATTRIBUTES: PREFETCH +EXTENSION : SSE +ISA_SET : SSE_PREFETCH +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +} +{ +ICLASS : PREFETCHT0 +CPL : 3 +CATEGORY : PREFETCH +ATTRIBUTES: PREFETCH +EXTENSION : SSE +ISA_SET : SSE_PREFETCH +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +} +{ +ICLASS : PREFETCHT1 +CPL : 3 +CATEGORY : PREFETCH +ATTRIBUTES: PREFETCH +EXTENSION : SSE +ISA_SET : SSE_PREFETCH +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +} +{ +ICLASS : PREFETCHT2 +CPL : 3 +CATEGORY : PREFETCH +ATTRIBUTES: PREFETCH +EXTENSION : SSE +ISA_SET : SSE_PREFETCH +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +} + + + +{ +ICLASS : NOP +CPL : 3 +UNAME : NOP0F18 +CATEGORY : WIDENOP +ATTRIBUTES: NOP +EXTENSION : BASE +ISA_SET : FAT_NOP + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r0 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r1 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r2 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r3 + + +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:r:v +IFORM : NOP_MEMv_0F18r4 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r4 + +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:v +IFORM : NOP_MEMv_0F18r5 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r5 + +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:r:v +IFORM : NOP_MEMv_0F18r6 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r6 + +PATTERN : 0x0F 0x18 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:r:v +IFORM : NOP_MEMv_0F18r7 + +PATTERN : 0x0F 0x18 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS : REG0=GPRv_B():r +IFORM : NOP_GPRv_0F18r7 +} +{ +ICLASS : NOP +UNAME : NOP0F19 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x19 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F19 + +PATTERN : 0x0F 0x19 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F19 +} +{ +ICLASS : NOP +CPL : 3 +UNAME : NOP0F1A +CATEGORY : WIDENOP +ATTRIBUTES: NOP +EXTENSION : BASE +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x1A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F1A + +PATTERN : 0x0F 0x1A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1A +} +{ +ICLASS : NOP +UNAME : NOP0F1B +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x1B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F1B + +PATTERN : 0x0F 0x1B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1B +} +{ +ICLASS : NOP +UNAME : NOP0F1C +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x1C MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F1C + +PATTERN : 0x0F 0x1C MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1C +} +{ +ICLASS : NOP +UNAME : NOP0F1D +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x1D MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F1D + +PATTERN : 0x0F 0x1D MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1D +} +{ +ICLASS : NOP +UNAME : NOP0F1E +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x1E MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F1E + +PATTERN : 0x0F 0x1E MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1E +} + +{ +ICLASS : NOP +UNAME : NOP0F1F +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : FAT_NOP +PATTERN : 0x0F 0x1F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +IFORM : NOP_MEMv_GPRv_0F1F +PATTERN : 0x0F 0x1F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1F +} +{ +ICLASS : VMCALL +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b000] RM[0b001] +OPERANDS : +} +{ +ICLASS : VMLAUNCH +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b000] RM[0b010] +OPERANDS : +} +{ +ICLASS : VMRESUME +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b000] RM[0b011] +OPERANDS : +} +{ +ICLASS : VMXOFF +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b000] RM[0b100] +OPERANDS : +} +{ +ICLASS : SGDT +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b000] RM[nnn] mode64 FORCE64() MODRM() +OPERANDS : MEM0:w:s64 REG0=XED_REG_GDTR:r:SUPP +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b000] RM[nnn] not64 MODRM() +OPERANDS : MEM0:w:s REG0=XED_REG_GDTR:r:SUPP +} +{ +ICLASS : LIDT +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +ATTRIBUTES: RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b011] RM[nnn] mode64 FORCE64() MODRM() +OPERANDS : MEM0:r:s64 REG0=XED_REG_IDTR:w:SUPP +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b011] RM[nnn] not64 MODRM() +OPERANDS : MEM0:r:s REG0=XED_REG_IDTR:w:SUPP +} +{ +ICLASS : MONITOR +CPL : 0 +CATEGORY : MISC +EXTENSION : SSE3 +ATTRIBUTES: RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b001] RM[0b000] +OPERANDS : REG0=XED_REG_EAX:r:SUPP REG1=XED_REG_ECX:r:SUPP REG2=XED_REG_EDX:r:SUPP +} +{ +ICLASS : MWAIT +CPL : 0 +CATEGORY : MISC +EXTENSION : SSE3 +ATTRIBUTES: RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b001] RM[0b001] +OPERANDS : REG0=XED_REG_EAX:rw:SUPP REG1=XED_REG_ECX:r:SUPP +} +{ +ICLASS : SIDT +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b001] RM[nnn] not64 MODRM() +OPERANDS : MEM0:w:s REG0=XED_REG_IDTR:r:SUPP +} +{ +ICLASS : SIDT +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b001] RM[nnn] mode64 FORCE64() MODRM() +OPERANDS : MEM0:w:s64 REG0=XED_REG_IDTR:r:SUPP +} +{ +ICLASS : INVLPG +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : ATT_OPERAND_ORDER_EXCEPTION BYTEOP RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:r:b +} +{ +ICLASS : SWAPGS +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : LONGMODE +ATTRIBUTES: RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b111] RM[0b000] mode64 +OPERANDS : +} +{ +ICLASS : RDTSCP +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : RDTSCP +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b111] RM[0b001] +OPERANDS : REG0=XED_REG_EAX:w:SUPP REG1=XED_REG_EDX:w:SUPP REG2=XED_REG_ECX:w:SUPP REG3=XED_REG_TSC:r:SUPP REG4=XED_REG_TSCAUX:r:SUPP +} +{ +ICLASS : SFENCE +CPL : 3 +CATEGORY : MISC +EXTENSION : SSE +ATTRIBUTES: IGNORES_OSFXSR +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b111] RM[nnn] no_refining_prefix +OPERANDS : +} +{ +ICLASS : CLFLUSH +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MISC +EXTENSION : CLFSH +ISA_SET : CLFSH +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b111] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:r:mprefetch +} +{ +ICLASS : LFENCE +CPL : 3 +CATEGORY : MISC +EXTENSION : SSE2 +ISA_SET : SSE2 +ATTRIBUTES: IGNORES_OSFXSR +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b101] RM[nnn] no_refining_prefix +OPERANDS : +} +{ +ICLASS : MFENCE +CPL : 3 +CATEGORY : MISC +EXTENSION : SSE2 +ISA_SET : SSE2 +ATTRIBUTES: IGNORES_OSFXSR +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b110] RM[nnn] no_refining_prefix +OPERANDS : +} +{ +ICLASS : MOVHLPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x12 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:q:f32 REG1=XMM_B():r:q:f32 +} +{ +ICLASS : MOVLPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x12 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:q:f32 MEM0:r:q:f32 +} +{ +ICLASS : MOVLHPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x16 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:q:f32 REG1=XMM_B():r:q:f32 +} +{ +ICLASS : MOVHPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x16 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:q:f32 MEM0:r:q:f32 +} +{ +ICLASS : ADD_LOCK +DISASM : add +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x00 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x00 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x00 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : ADD_GPR8_GPR8_00 +} + + + +{ +ICLASS : ADD_LOCK +DISASM : add +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x01 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x01 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x01 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : ADD_GPRv_GPRv_01 +} + + + +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x02 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x02 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : ADD_GPR8_GPR8_02 +} + + + +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x03 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x03 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : ADD_GPRv_GPRv_03 +} + +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x04 SIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b:i8 +} +{ +ICLASS : ADD +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x05 SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x06 not64 +OPERANDS : REG0=XED_REG_ES:r:IMPL REG1=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0x07 not64 +OPERANDS : REG0=XED_REG_ES:w:IMPL REG1=XED_REG_STACKPOP:r:spw:SUPP +} + +{ +ICLASS : OR_LOCK +DISASM : or +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x08 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x08 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x08 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : OR_GPR8_GPR8_08 +} + + + + +{ +ICLASS : OR_LOCK +DISASM : or +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x09 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x09 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x09 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : OR_GPRv_GPRv_09 +} + + + +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x0A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x0A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : OR_GPR8_GPR8_0A +} + + + +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x0B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x0B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : OR_GPRv_GPRv_0B +} + + + +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x0C UIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b +} +{ +ICLASS : OR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x0D SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x0E not64 +OPERANDS : REG0=XED_REG_CS:r:IMPL REG1=XED_REG_STACKPUSH:w:spw:SUPP +} + + +{ +ICLASS : ADC_LOCK +DISASM : adc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x10 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x10 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x10 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : ADC_GPR8_GPR8_10 +} + + + +{ +ICLASS : ADC_LOCK +DISASM : adc +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x11 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x11 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x11 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : ADC_GPRv_GPRv_11 +} + + + +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x12 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x12 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : ADC_GPR8_GPR8_12 +} + + + +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] + +PATTERN : 0x13 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x13 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : ADC_GPRv_GPRv_13 +} + + + + + +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x14 SIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b:i8 +} +{ +ICLASS : ADC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x15 SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x16 not64 +OPERANDS : REG0=XED_REG_SS:r:IMPL REG1=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0x17 not64 +COMMENT : Inhibits all interrupts until after next instr +OPERANDS : REG0=XED_REG_SS:w:IMPL REG1=XED_REG_STACKPOP:r:spw:SUPP +} +{ +ICLASS : SBB_LOCK +DISASM : sbb +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x18 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x18 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x18 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : SBB_GPR8_GPR8_18 +} + + + + + + +{ +ICLASS : SBB_LOCK +DISASM : sbb +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x19 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] + +PATTERN : 0x19 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x19 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : SBB_GPRv_GPRv_19 +} + + +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x1A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : SBB_GPR8_GPR8_1A + +PATTERN : 0x1A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x1B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : SBB_GPRv_GPRv_1B + +PATTERN : 0x1B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x1C SIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b:i8 +} +{ +ICLASS : SBB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-tst cf-mod ] +PATTERN : 0x1D SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x1E not64 +OPERANDS : REG0=XED_REG_DS:r:IMPL REG1=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0x1F not64 +OPERANDS : REG0=XED_REG_DS:w:IMPL REG1=XED_REG_STACKPOP:r:spw:SUPP +} + + + +{ +ICLASS : AND_LOCK +DISASM : and +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x20 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x20 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x20 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : AND_GPR8_GPR8_20 +} + + + +{ +ICLASS : AND_LOCK +DISASM : and +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x21 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x21 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x21 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : AND_GPRv_GPRv_21 +} + + + +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x22 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : AND_GPR8_GPR8_22 + +PATTERN : 0x22 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x23 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : AND_GPRv_GPRv_23 + +PATTERN : 0x23 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x24 SIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b:i8 +} +{ +ICLASS : AND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x25 SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : DAA +CPL : 3 +CATEGORY : DECIMAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-mod zf-mod af-tst af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x27 not64 +OPERANDS : REG0=XED_REG_AL:rw:SUPP +} + + + +{ +ICLASS : SUB_LOCK +DISASM : sub +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x28 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x28 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x28 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : SUB_GPR8_GPR8_28 +} + + +{ +ICLASS : SUB_LOCK +DISASM : sub +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x29 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x29 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x29 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : SUB_GPRv_GPRv_29 +} + + + +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x2A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : SUB_GPR8_GPR8_2A +PATTERN : 0x2A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x2B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : SUB_GPRv_GPRv_2B + +PATTERN : 0x2B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x2C SIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b:i8 +} +{ +ICLASS : SUB +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x2D SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : DAS +CPL : 3 +CATEGORY : DECIMAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-mod zf-mod af-tst af-mod pf-mod cf-tst cf-mod ] +PATTERN : 0x2F not64 +OPERANDS : REG0=XED_REG_AL:rw:SUPP +} + +{ +ICLASS : XOR_LOCK +DISASM : xor +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x30 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x30 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():r +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x30 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():r +IFORM : XOR_GPR8_GPR8_30 +} + + + + + +{ +ICLASS : XOR_LOCK +DISASM : xor +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x31 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x31 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +PATTERN : 0x31 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +IFORM : XOR_GPRv_GPRv_31 +} + + + +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x32 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():rw REG1=GPR8_B():r +IFORM : XOR_GPR8_GPR8_32 + +PATTERN : 0x32 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():rw MEM0:r:b +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x33 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +IFORM : XOR_GPRv_GPRv_33 + +PATTERN : 0x33 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x34 UIMM8() +OPERANDS : REG0=XED_REG_AL:rw:IMPL IMM0:r:b +} +{ +ICLASS : XOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x35 SIMMz() +OPERANDS : REG0=OrAX():rw:IMPL IMM0:r:z +} +{ +ICLASS : AAA +CPL : 3 +CATEGORY : DECIMAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-u zf-u af-tst af-mod pf-u cf-mod ] +PATTERN : 0x37 not64 +OPERANDS : REG0=XED_REG_AL:rw:SUPP REG1=XED_REG_AH:rw:SUPP +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:b REG0=GPR8_R():r + +PATTERN : 0x38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():r REG1=GPR8_R():r +IFORM : CMP_GPR8_GPR8_38 +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x39 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +PATTERN : 0x39 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : CMP_GPRv_GPRv_39 +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():r MEM0:r:b +PATTERN : 0x3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():r REG1=GPR8_B():r +IFORM : CMP_GPR8_GPR8_3A +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x3B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():r MEM0:r:v +PATTERN : 0x3B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():r REG1=GPRv_B():r +IFORM : CMP_GPRv_GPRv_3B +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x3C SIMM8() +OPERANDS : REG0=XED_REG_AL:r:IMPL IMM0:r:b:i8 +} +{ +ICLASS : CMP +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x3D SIMMz() +OPERANDS : REG0=OrAX():r:IMPL IMM0:r:z +} +{ +ICLASS : AAS +CPL : 3 +CATEGORY : DECIMAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-u zf-u af-tst af-mod pf-u cf-mod ] +PATTERN : 0x3F not64 +OPERANDS : REG0=XED_REG_AL:rw:SUPP REG1=XED_REG_AH:rw:SUPP +} +{ +ICLASS : INC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0b0100_0 SRM[rrr] not64 +OPERANDS : REG0=GPRv_SB():rw +IFORM : INC_GPRv_40 +} +{ +ICLASS : DEC +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod ] +PATTERN : 0b0100_1 SRM[rrr] not64 +OPERANDS : REG0=GPRv_SB():rw +IFORM : DEC_GPRv_48 +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0b0101_0 SRM[rrr] DF64() +OPERANDS : REG0=GPRv_SB():r REG1=XED_REG_STACKPUSH:w:spw:SUPP +IFORM : PUSH_GPRv_50 +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0b0101_1 SRM[rrr] DF64() +OPERANDS : REG0=GPRv_SB():w REG1=XED_REG_STACKPOP:r:spw:SUPP +IFORM : POP_GPRv_51 +} +{ +ICLASS : PUSHA +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I186 +PATTERN : 0x60 EOSZ=1 not64 +OPERANDS : REG0=XED_REG_STACKPUSH:w:spw8:SUPP REG1=XED_REG_AX:r:SUPP REG2=XED_REG_CX:r:SUPP REG3=XED_REG_DX:r:SUPP REG4=XED_REG_BX:r:SUPP REG5=XED_REG_SP:r:SUPP REG6=XED_REG_BP:r:SUPP REG7=XED_REG_SI:r:SUPP REG8=XED_REG_DI:r:SUPP +} +{ +ICLASS : PUSHAD +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x60 EOSZ=2 not64 +OPERANDS : REG0=XED_REG_STACKPUSH:w:spw8:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_EBX:r:SUPP REG5=XED_REG_ESP:r:SUPP REG6=XED_REG_EBP:r:SUPP REG7=XED_REG_ESI:r:SUPP REG8=XED_REG_EDI:r:SUPP +} +{ +ICLASS : POPA +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I186 +PATTERN : 0x61 EOSZ=1 not64 +OPERANDS : REG0=XED_REG_STACKPOP:r:spw8:SUPP REG1=XED_REG_AX:w:SUPP REG2=XED_REG_CX:w:SUPP REG3=XED_REG_DX:w:SUPP REG4=XED_REG_BX:w:SUPP REG5=XED_REG_BP:w:SUPP REG6=XED_REG_SI:w:SUPP REG7=XED_REG_DI:w:SUPP +COMMENT : eSP value on the stack is ignored! 2008-08-14 +} +{ +ICLASS : POPAD +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x61 EOSZ=2 not64 +OPERANDS : REG0=XED_REG_STACKPOP:r:spw8:SUPP REG1=XED_REG_EAX:w:SUPP REG2=XED_REG_ECX:w:SUPP REG3=XED_REG_EDX:w:SUPP REG4=XED_REG_EBX:w:SUPP REG5=XED_REG_EBP:w:SUPP REG6=XED_REG_ESI:w:SUPP REG7=XED_REG_EDI:w:SUPP +COMMENT : eSP value on the stack is ignored! 2008-08-14 +} +{ +ICLASS : BOUND +CPL : 3 +CATEGORY : INTERRUPT +EXTENSION : BASE +ATTRIBUTES: EXCEPTION_BR +ISA_SET : I186 +PATTERN : 0x62 mode16 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():r MEM0:r:a16 +PATTERN : 0x62 mode32 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():r MEM0:r:a32 +} +{ +ICLASS : ARPL +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x63 MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() +OPERANDS : MEM0:rw:w REG0=GPR16_R():r +} +{ +ICLASS : ARPL +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES: PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x63 MOD[0b11] MOD=3 REG[rrr] RM[nnn] not64 +OPERANDS : REG0=GPR16_B():rw REG1=GPR16_R():r +} +{ +ICLASS : MOVSXD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : LONGMODE +PATTERN : 0x63 MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:d +} +{ +ICLASS : MOVSXD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : LONGMODE +PATTERN : 0x63 MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 +OPERANDS : REG0=GPRv_R():w REG1=GPR32_B():r +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I186 +PATTERN : 0x68 DF64() SIMMz() +OPERANDS : IMM0:r:z REG0=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : IMUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I186 +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0x69 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SIMMz() +OPERANDS : REG0=GPRv_R():w MEM0:r:v IMM0:r:z + +PATTERN : 0x69 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SIMMz() +OPERANDS : REG0=GPRv_R():w REG1=GPRv_B():r IMM0:r:z +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I186 +PATTERN : 0x6A DF64() SIMM8() +OPERANDS : IMM0:r:b:i8 REG0=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : IMUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I186 +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0x6B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SIMM8() +OPERANDS : REG0=GPRv_R():w MEM0:r:v IMM0:r:b:i8 + +PATTERN : 0x6B MOD[0b11] MOD=3 REG[rrr] RM[nnn] SIMM8() +OPERANDS : REG0=GPRv_R():w REG1=GPRv_B():r IMM0:r:b:i8 +} + + +{ +ICLASS : REP_INSB +DISASM : insb +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES :REP fixed_base0 NOTSX BYTEOP +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6C repe +OPERANDS : MEM0:cw:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0x6C repne +OPERANDS : MEM0:cw:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP +} + +{ +ICLASS : INSB +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : fixed_base0 NOTSX BYTEOP +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6C norep +OPERANDS : MEM0:w:SUPP:b BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP +} + + +{ +ICLASS : REP_INSW +DISASM : insw +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : REP fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6D EOSZ=1 repe +OPERANDS : MEM0:cw:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0x6D EOSZ=1 repne +OPERANDS : MEM0:cw:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : INSW +DISASM : insw +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6D EOSZ=1 norep +OPERANDS : MEM0:w:SUPP:w BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP +} + + +{ +ICLASS : REP_INSD +DISASM : insd +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES :REP fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6D EOSZ=2 repe +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP + +PATTERN : 0x6D EOSZ=3 repe +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP + +PATTERN : 0x6D EOSZ=2 repne +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP + +PATTERN : 0x6D EOSZ=3 repne +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP REG1=ArCX():rcw:SUPP +} + +{ +ICLASS : INSD +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6D EOSZ=2 norep +OPERANDS : MEM0:w:SUPP:d BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP + +PATTERN : 0x6D EOSZ=3 norep +OPERANDS : MEM0:w:SUPP:d BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_DX:r:SUPP +} + + +{ +ICLASS : REP_OUTSB +DISASM : outsb +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES :REP fixed_base0 NOTSX BYTEOP +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6E repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:b BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0x6E repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:b BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} + +{ +ICLASS : OUTSB +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : fixed_base0 NOTSX BYTEOP +FLAGS : READONLY [ iopl-tst df-tst ] + +PATTERN : 0x6E norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:r:SUPP:b BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + +{ +ICLASS : REP_OUTSW +DISASM : outsw +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES :REP fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6F EOSZ=1 repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:w BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0x6F EOSZ=1 repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:w BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} + +{ +ICLASS : OUTSW +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] +PATTERN : 0x6F EOSZ=1 norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:r:SUPP:w BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + +{ +ICLASS : REP_OUTSD +DISASM : outsd +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES :REP fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] + +PATTERN : 0x6F EOSZ=2 repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP + +PATTERN : 0x6F EOSZ=3 repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP + +PATTERN : 0x6F EOSZ=2 repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP + +PATTERN : 0x6F EOSZ=3 repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : OUTSD +CPL : 3 +CATEGORY : IOSTRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 NOTSX +FLAGS : READONLY [ iopl-tst df-tst ] + +PATTERN : 0x6F EOSZ=2 norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:r:SUPP:d BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP + +PATTERN : 0x6F EOSZ=3 norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_DX:r:SUPP MEM0:r:SUPP:d BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + +{ +ICLASS : JO +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x70 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x70 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNO +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x71 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x71 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JB +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x72 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x72 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNB +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x73 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x73 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JZ +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x74 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x74 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNZ +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x75 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x75 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JBE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x76 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x76 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNBE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x77 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x77 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JS +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x78 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x78 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNS +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x79 mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x79 not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ pf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x7A mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x7A not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ pf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x7B mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x7B not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JL +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x7C mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x7C not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNL +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x7D mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x7D not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JLE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x7E mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x7E not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : JNLE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0x7F mode64 FORCE64() BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +PATTERN : 0x7F not64 BRANCH_HINT() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x84 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:b REG0=GPR8_R():r +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x84 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():r REG1=GPR8_R():r +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x85 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0x85 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +} +{ +ICLASS : XCHG +CPL : 3 +CATEGORY : DATAXFER +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x86 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():rw +PATTERN : 0x86 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():rw +} +{ +ICLASS : XCHG +CPL : 3 +CATEGORY : DATAXFER +ATTRIBUTES : BYTEOP +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x86 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():rw +} + + +{ +ICLASS : XCHG +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +PATTERN : 0x87 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():rw +PATTERN : 0x87 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():rw +} +{ +ICLASS : XCHG +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x87 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():rw +} + + +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +ATTRIBUTES : BYTEOP +EXTENSION : BASE +ISA_SET : I86 + +PATTERN : 0x88 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w REG1=GPR8_R():r +IFORM : MOV_GPR8_GPR8_88 +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +ATTRIBUTES : BYTEOP HLE_REL_ABLE +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x88 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b REG0=GPR8_R():r +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : HLE_REL_ABLE +PATTERN : 0x89 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:v REG0=GPRv_R():r +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x89 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():w REG1=GPRv_R():r +IFORM : MOV_GPRv_GPRv_89 +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +ATTRIBUTES : BYTEOP +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR8_R():w MEM0:r:b + +PATTERN : 0x8A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_R():w REG1=GPR8_B():r +IFORM : MOV_GPR8_GPR8_8A +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:v +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w REG1=GPRv_B():r +IFORM : MOV_GPRv_GPRv_8B +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8C MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:w REG0=SEG():r +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8C MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():w REG1=SEG():r +} +{ +ICLASS : LEA +CPL : 3 +CATEGORY : MISC +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x8D MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() REMOVE_SEGMENT() +OPERANDS : REG0=GPRv_R():w AGEN:r +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +COMMENT : MOV to SS Inhibits all interrupts until after next instr +PATTERN : 0x8E MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=SEG():w MEM0:r:w +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0x8E MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=SEG():w REG1=GPR16_B():r +} + + + +{ +ICLASS : NOP +UNAME : NOP90 +CPL : 3 +CATEGORY : NOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : I86 +PATTERN : 0b1001_0 SRM[0b000] SRM=0 not_refining_f3 norexb_prefix +OPERANDS : +IFORM : NOP_90 +} +{ +ICLASS : PAUSE +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MISC +EXTENSION : PAUSE +ISA_SET : PAUSE +PATTERN : 0b1001_0 SRM[0b000] SRM=0 refining_f3 P4=1 +OPERANDS : +COMMENT : 2008-06-11 Ignores REX completely. Introduced on PENTIUM4 +} +{ +ICLASS : NOP +CPL : 3 +CATEGORY : NOP +EXTENSION : BASE +ATTRIBUTES: NOP +ISA_SET : I86 +PATTERN : 0b1001_0 SRM[0b000] SRM=0 refining_f3 P4=0 +OPERANDS : +IFORM : NOP_90 +COMMENT : This is the encoding of PAUSE on pre-P4 systems + +} + +{ +ICLASS : XCHG +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 + +PATTERN : 0b1001_0 SRM[rrr] SRM!=0 +OPERANDS : REG0=GPRv_SB():rw REG1=OrAX():rw:IMPL + +PATTERN : 0b1001_0 SRM[rrr] SRM=0 not_refining_f3 rexb_prefix +OPERANDS : REG0=GPRv_SB():rw REG1=OrAX():rw:IMPL +} +{ +ICLASS : CBW +CPL : 3 +CATEGORY : CONVERT +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x98 EOSZ=1 +OPERANDS : REG0=XED_REG_AX:w:SUPP REG1=XED_REG_AL:r:SUPP +} +{ +ICLASS : CDQE +CPL : 3 +CATEGORY : CONVERT +EXTENSION : LONGMODE +PATTERN : 0x98 EOSZ=3 mode64 rexw_prefix +OPERANDS : REG0=XED_REG_RAX:w:SUPP REG1=XED_REG_EAX:r:SUPP +} +{ +ICLASS : CWDE +CPL : 3 +CATEGORY : CONVERT +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x98 EOSZ=2 +OPERANDS : REG0=XED_REG_EAX:w:SUPP REG1=XED_REG_AX:r:SUPP +} +{ +ICLASS : CWD +CPL : 3 +CATEGORY : CONVERT +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x99 EOSZ=1 +OPERANDS : REG0=XED_REG_DX:w:SUPP REG1=XED_REG_AX:r:SUPP +} +{ +ICLASS : CQO +CPL : 3 +CATEGORY : CONVERT +EXTENSION : LONGMODE +PATTERN : 0x99 EOSZ=3 mode64 rexw_prefix +OPERANDS : REG0=XED_REG_RDX:w:SUPP REG1=XED_REG_RAX:r:SUPP +} +{ +ICLASS : CDQ +CPL : 3 +CATEGORY : CONVERT +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x99 EOSZ=2 +OPERANDS : REG0=XED_REG_EDX:w:SUPP REG1=XED_REG_EAX:r:SUPP +} +{ +ICLASS : CALL_FAR +DISASM_INTEL : call far +DISASM_ATTSV : lcall +CPL : 3 +CATEGORY : CALL +ATTRIBUTES : FAR_XFER NOTSX +EXTENSION : BASE +ISA_SET : I86 +COMMENT : same privilege level does 2 pushes (spw2). inter-privilege level does 4 (not represented) +PATTERN : 0xFF MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:r:p2 REG0=XED_REG_STACKPUSH:w:spw2:SUPP REG1=rIP():w:SUPP +PATTERN : 0x9A not64 BRDISPz() UIMM16() +OPERANDS : PTR:r:p IMM0:r:w REG0=XED_REG_STACKPUSH:w:spw2:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : FWAIT +CPL : 3 +CATEGORY : X87_ALU +EXTENSION : X87 +ATTRIBUTES : X87_CONTROL NOTSX +PATTERN : 0x9B +OPERANDS : +} +{ +ICLASS : PUSHF +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ id-tst vip-tst vif-tst ac-tst vm-tst rf-tst nt-tst iopl-tst iopl-tst of-tst df-tst if-tst tf-tst sf-tst zf-tst af-tst pf-tst cf-tst ] +PATTERN : 0x9C DF64() EOSZ=1 +OPERANDS : REG0=XED_REG_STACKPUSH:w:w:SUPP +} +{ +ICLASS : PUSHFD +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ id-tst vip-tst vif-tst ac-tst vm-tst rf-tst nt-tst iopl-tst iopl-tst of-tst df-tst if-tst tf-tst sf-tst zf-tst af-tst pf-tst cf-tst ] +PATTERN : 0x9C DF64() EOSZ=2 not64 +OPERANDS : REG0=XED_REG_STACKPUSH:w:d:SUPP +} +{ +ICLASS : PUSHFQ +CPL : 3 +CATEGORY : PUSH +EXTENSION : LONGMODE +FLAGS : MUST [ id-tst vip-tst vif-tst ac-tst vm-tst rf-tst nt-tst iopl-tst iopl-tst of-tst df-tst if-tst tf-tst sf-tst zf-tst af-tst pf-tst cf-tst ] +PATTERN : 0x9C DF64() EOSZ=3 mode64 +OPERANDS : REG0=XED_REG_STACKPUSH:w:q:SUPP +} +{ +ICLASS : POPF +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ id-pop vip-tst vif-mod ac-pop vm-tst rf-0 nt-pop iopl-tst iopl-pop of-pop df-pop if-pop tf-pop sf-pop zf-pop af-pop pf-pop cf-pop ] +PATTERN : 0x9D DF64() EOSZ=1 +OPERANDS : REG0=XED_REG_STACKPOP:r:w:SUPP +} +{ +ICLASS : POPFD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ id-pop vip-tst vif-mod ac-pop vm-tst rf-0 nt-pop iopl-tst iopl-pop of-pop df-pop if-pop tf-pop sf-pop zf-pop af-pop pf-pop cf-pop ] +PATTERN : 0x9D DF64() EOSZ=2 not64 +OPERANDS : REG0=XED_REG_STACKPOP:r:d:SUPP +} +{ +ICLASS : POPFQ +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : POP +EXTENSION : LONGMODE +FLAGS : MUST [ id-pop vip-tst vif-mod ac-pop vm-tst rf-0 nt-pop iopl-tst iopl-pop of-pop df-pop if-pop tf-pop sf-pop zf-pop af-pop pf-pop cf-pop ] +PATTERN : 0x9D DF64() EOSZ=3 mode64 +OPERANDS : REG0=XED_REG_STACKPOP:r:q:SUPP +} +{ +ICLASS : SAHF +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : LAHF +FLAGS : MUST [ sf-ah zf-ah af-ah pf-ah cf-ah ] +PATTERN : 0x9E +OPERANDS : REG0=XED_REG_AH:r:SUPP +} +{ +ICLASS : LAHF +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : LAHF +FLAGS : MUST [ sf-tst zf-tst af-tst pf-tst cf-tst ] +PATTERN : 0x9F +OPERANDS : REG0=XED_REG_AH:w:SUPP +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 BYTEOP +PATTERN : 0xA0 MEMDISPv() OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AL:w:IMPL MEM0:r:b SEG0=FINAL_DSEG():r:SUPP BASE0=XED_REG_INVALID:r:ECOND INDEX=XED_REG_INVALID:r:ECOND +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 +PATTERN : 0xA1 MEMDISPv() OVERRIDE_SEG0() +OPERANDS : REG0=OrAX():w:IMPL MEM0:r:v SEG0=FINAL_DSEG():r:SUPP BASE0=XED_REG_INVALID:r:ECOND INDEX=XED_REG_INVALID:r:ECOND +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 BYTEOP +PATTERN : 0xA2 MEMDISPv() OVERRIDE_SEG0() +OPERANDS : MEM0:w:b REG0=XED_REG_AL:r:IMPL SEG0=FINAL_DSEG():r:SUPP BASE0=XED_REG_INVALID:r:ECOND INDEX=XED_REG_INVALID:r:ECOND +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 +PATTERN : 0xA3 MEMDISPv() OVERRIDE_SEG0() +OPERANDS : MEM0:w:v REG0=OrAX():r:IMPL SEG0=FINAL_DSEG():r:SUPP BASE0=XED_REG_INVALID:r:ECOND INDEX=XED_REG_INVALID:r:ECOND +} + + +{ +ICLASS : REP_MOVSB +DISASM : movsb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES :REP fixed_base0 fixed_base1 BYTEOP +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA4 repe OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:b BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP + +PATTERN : 0xA4 repne OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:b BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : MOVSB +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 fixed_base1 BYTEOP +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA4 norep OVERRIDE_SEG1() +OPERANDS : MEM0:w:SUPP:b BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:r:SUPP:b BASE1=ArSI():rw:SUPP SEG1=FINAL_DSEG1():r:SUPP +} + + + +{ +ICLASS : REP_MOVSW +DISASM : movsw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES :REP fixed_base0 fixed_base1 +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA5 EOSZ=1 repe OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:w BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP + +PATTERN : 0xA5 EOSZ=1 repne OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:w BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : MOVSW +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 fixed_base1 +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA5 EOSZ=1 norep OVERRIDE_SEG1() +OPERANDS : MEM0:w:SUPP:w BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:r:SUPP:w BASE1=ArSI():rw:SUPP SEG1=FINAL_DSEG1():r:SUPP +} + + + +{ +ICLASS : REP_MOVSD +DISASM : movsd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES :REP fixed_base0 fixed_base1 +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA5 EOSZ=2 repe OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:d BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP + +PATTERN : 0xA5 EOSZ=2 repne OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:d BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : MOVSD +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 fixed_base1 +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA5 EOSZ=2 norep OVERRIDE_SEG1() +OPERANDS : MEM0:w:SUPP:d BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:r:SUPP:d BASE1=ArSI():rw:SUPP SEG1=FINAL_DSEG1():r:SUPP +} + + +{ +ICLASS : REP_MOVSQ +DISASM : movsq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES :REP fixed_base0 fixed_base1 +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA5 EOSZ=3 repe OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:q BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:q BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP + +PATTERN : 0xA5 EOSZ=3 repne OVERRIDE_SEG1() +OPERANDS : MEM0:cw:SUPP:q BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:cr:SUPP:q BASE1=ArSI():rcw:SUPP SEG1=FINAL_DSEG1():r:SUPP REG0=ArCX():rcw:SUPP +} + +{ +ICLASS : MOVSQ +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : fixed_base0 fixed_base1 +FLAGS : READONLY [ df-tst ] + +PATTERN : 0xA5 EOSZ=3 norep OVERRIDE_SEG1() +OPERANDS : MEM0:w:SUPP:q BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP MEM1:r:SUPP:q BASE1=ArSI():rw:SUPP SEG1=FINAL_DSEG1():r:SUPP +} + + +{ +ICLASS : REPE_CMPSB +DISASM : cmpsb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 fixed_base1 BYTEOP +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA6 repe OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:b BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:b BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_CMPSB +DISASM : cmpsb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 fixed_base1 BYTEOP +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA6 repne OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:b BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:b BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} + +{ +ICLASS : CMPSB +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 fixed_base1 BYTEOP +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0xA6 norep OVERRIDE_SEG0() +OPERANDS : MEM0:r:SUPP:b BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:r:SUPP:b BASE1=ArDI():rw:SUPP SEG1=FINAL_ESEG1():r:SUPP +} + + +{ +ICLASS : REPE_CMPSW +DISASM : cmpsw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 fixed_base1 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA7 EOSZ=1 repe OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:w BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:w BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_CMPSW +DISASM : cmpsw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 fixed_base1 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA7 EOSZ=1 repne OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:w BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:w BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} + +{ +ICLASS : CMPSW +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 fixed_base1 +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xA7 EOSZ=1 norep OVERRIDE_SEG0() +OPERANDS : MEM0:r:SUPP:w BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:r:SUPP:w BASE1=ArDI():rw:SUPP SEG1=FINAL_ESEG1():r:SUPP +} + + + + +{ +ICLASS : REPE_CMPSD +DISASM : cmpsd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : REP fixed_base0 fixed_base1 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA7 EOSZ=2 repe OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:d BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_CMPSD +DISASM : cmpsd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : REP fixed_base0 fixed_base1 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA7 EOSZ=2 repne OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:d BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} + + +{ +ICLASS : CMPSD +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 fixed_base1 +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0xA7 EOSZ=2 norep OVERRIDE_SEG0() +OPERANDS : MEM0:r:SUPP:d BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:r:SUPP:d BASE1=ArDI():rw:SUPP SEG1=FINAL_ESEG1():r:SUPP +} + + +{ +ICLASS : REPE_CMPSQ +DISASM : cmpsq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : REP fixed_base0 fixed_base1 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA7 EOSZ=3 repe OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:q BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:q BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_CMPSQ +DISASM : cmpsq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : REP fixed_base0 fixed_base1 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] + +PATTERN : 0xA7 EOSZ=3 repne OVERRIDE_SEG0() +OPERANDS : MEM0:cr:SUPP:q BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:cr:SUPP:q BASE1=ArDI():rcw:SUPP SEG1=FINAL_ESEG1():r:SUPP REG0=ArCX():rcw:SUPP +} +{ +ICLASS : CMPSQ +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : fixed_base0 fixed_base1 +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xA7 EOSZ=3 norep OVERRIDE_SEG0() +OPERANDS : MEM0:r:SUPP:q BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP MEM1:r:SUPP:q BASE1=ArDI():rw:SUPP SEG1=FINAL_ESEG1():r:SUPP +} + + +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0xA8 SIMM8() +OPERANDS : REG0=XED_REG_AL:r:IMPL IMM0:r:b:i8 +} +{ +ICLASS : TEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] +PATTERN : 0xA9 SIMMz() +OPERANDS : REG0=OrAX():r:IMPL IMM0:r:z +} + +{ +ICLASS : REP_STOSB +DISASM : stosb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES :REP fixed_base0 BYTEOP +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAA repe +OPERANDS : MEM0:cw:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_AL:r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAA repne +OPERANDS : MEM0:cw:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_AL:r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : STOSB +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 BYTEOP +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAA norep +OPERANDS : MEM0:w:SUPP:b BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_AL:r:SUPP +} + + + +{ +ICLASS : REP_STOSW +DISASM : stosw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES :REP fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAB EOSZ=1 repe +OPERANDS : MEM0:cw:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_AX:r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAB EOSZ=1 repne +OPERANDS : MEM0:cw:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_AX:r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : STOSW +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAB EOSZ=1 norep +OPERANDS : MEM0:w:SUPP:w BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_AX:r:SUPP +} + + + + +{ +ICLASS : REP_STOSD +DISASM : stosd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES :REP fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAB EOSZ=2 repe +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_EAX:r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAB EOSZ=2 repne +OPERANDS : MEM0:cw:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_EAX:r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : STOSD +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAB EOSZ=2 norep +OPERANDS : MEM0:w:SUPP:d BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_EAX:r:SUPP +} + + + + +{ +ICLASS : REP_STOSQ +DISASM : stosq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES :REP fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAB EOSZ=3 repe +OPERANDS : MEM0:cw:SUPP:q BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_RAX:r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAB EOSZ=3 repne +OPERANDS : MEM0:cw:SUPP:q BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_RAX:r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : STOSQ +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAB EOSZ=3 norep +OPERANDS : MEM0:w:SUPP:q BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP REG0=XED_REG_RAX:r:SUPP +} + + + + +{ +ICLASS : REP_LODSB +DISASM : lodsb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES :REP fixed_base0 BYTEOP +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAC repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AL:cw:SUPP MEM0:cr:SUPP:b BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAC repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AL:cw:SUPP MEM0:cr:SUPP:b BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : LODSB +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 BYTEOP +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAC norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AL:w:SUPP MEM0:r:SUPP:b BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + + + +{ +ICLASS : REP_LODSW +DISASM : lodsw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES :REP fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAD EOSZ=1 repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AX:cw:SUPP MEM0:cr:SUPP:w BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAD EOSZ=1 repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AX:cw:SUPP MEM0:cr:SUPP:w BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : LODSW +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAD EOSZ=1 norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_AX:w:SUPP MEM0:r:SUPP:w BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + + + +{ +ICLASS : REP_LODSD +DISASM : lodsd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES :REP fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAD EOSZ=2 repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_EAX:cw:SUPP MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAD EOSZ=2 repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_EAX:cw:SUPP MEM0:cr:SUPP:d BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : LODSD +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAD EOSZ=2 norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_EAX:w:SUPP MEM0:r:SUPP:d BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + + +{ +ICLASS : REP_LODSQ +DISASM : lodsq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES :REP fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAD EOSZ=3 repe OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_RAX:cw:SUPP MEM0:cr:SUPP:q BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +PATTERN : 0xAD EOSZ=3 repne OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_RAX:cw:SUPP MEM0:cr:SUPP:q BASE0=ArSI():rcw:SUPP SEG0=FINAL_DSEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : LODSQ +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : fixed_base0 +FLAGS : READONLY [ df-tst ] +PATTERN : 0xAD EOSZ=3 norep OVERRIDE_SEG0() +OPERANDS : REG0=XED_REG_RAX:w:SUPP MEM0:r:SUPP:q BASE0=ArSI():rw:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + + +{ +ICLASS : REPE_SCASB +DISASM : scasb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 BYTEOP +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAE repe +OPERANDS : REG0=XED_REG_AL:r:SUPP MEM0:cr:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_SCASB +DISASM : scasb +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 BYTEOP +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAE repne +OPERANDS : REG0=XED_REG_AL:r:SUPP MEM0:cr:SUPP:b BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} + +{ +ICLASS : SCASB +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 BYTEOP +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xAE norep +OPERANDS : REG0=XED_REG_AL:r:SUPP MEM0:r:SUPP:b BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP +} + + + + +{ +ICLASS : REPE_SCASW +DISASM : scasw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAF EOSZ=1 repe +OPERANDS : REG0=XED_REG_AX:r:SUPP MEM0:cr:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_SCASW +DISASM : scasw +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : REP fixed_base0 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAF EOSZ=1 repne +OPERANDS : REG0=XED_REG_AX:r:SUPP MEM0:cr:SUPP:w BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : SCASW +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xAF EOSZ=1 norep +OPERANDS : REG0=XED_REG_AX:r:SUPP MEM0:r:SUPP:w BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP +} + + + + +{ +ICLASS : REPE_SCASD +DISASM : scasd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : REP fixed_base0 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAF EOSZ=2 repe +OPERANDS : REG0=XED_REG_EAX:r:SUPP MEM0:cr:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_SCASD +DISASM : scasd +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : REP fixed_base0 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAF EOSZ=2 repne +OPERANDS : REG0=XED_REG_EAX:r:SUPP MEM0:cr:SUPP:d BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : SCASD +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : fixed_base0 +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xAF EOSZ=2 norep +OPERANDS : REG0=XED_REG_EAX:r:SUPP MEM0:r:SUPP:d BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP +} + + + + +{ +ICLASS : REPE_SCASQ +DISASM : scasq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : REP fixed_base0 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAF EOSZ=3 repe +OPERANDS : REG0=XED_REG_RAX:r:SUPP MEM0:cr:SUPP:q BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : REPNE_SCASQ +DISASM : scasq +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : REP fixed_base0 +FLAGS : MAY [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod zf-tst ] +PATTERN : 0xAF EOSZ=3 repne +OPERANDS : REG0=XED_REG_RAX:r:SUPP MEM0:cr:SUPP:q BASE0=ArDI():rcw:SUPP SEG0=FINAL_ESEG():r:SUPP REG1=ArCX():rcw:SUPP +} +{ +ICLASS : SCASQ +CPL : 3 +CATEGORY : STRINGOP +EXTENSION : LONGMODE +ATTRIBUTES : fixed_base0 +FLAGS : MUST [ of-mod df-tst sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0xAF EOSZ=3 norep +OPERANDS : REG0=XED_REG_RAX:r:SUPP MEM0:r:SUPP:q BASE0=ArDI():rw:SUPP SEG0=FINAL_ESEG():r:SUPP +} + + + + +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +ATTRIBUTES : BYTEOP +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0b1011_0 SRM[rrr] UIMM8() +OPERANDS : REG0=GPR8_SB():w IMM0:r:b +# i had to come up with a partial nibble name +IFORM : MOV_GPR8_IMMb_D0 +} +{ +ICLASS : MOV +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0b1011_1 SRM[rrr] UIMMv() +OPERANDS : REG0=GPRv_SB():w IMM0:r:v +} +{ +ICLASS : RET_NEAR +DISASM : ret +CPL : 3 +CATEGORY : RET +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0xC2 DF64() UIMM16() IMMUNE66_LOOP64() +OPERANDS : IMM0:r:w REG0=XED_REG_STACKPOP:r:spw:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : RET_NEAR +DISASM : ret +CPL : 3 +CATEGORY : RET +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0xC3 DF64() IMMUNE66_LOOP64() +OPERANDS : REG0=XED_REG_STACKPOP:r:spw:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : LES +CPL : 3 +CATEGORY : SEGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0xC4 MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() +OPERANDS : REG0=GPRz_R():w MEM0:r:p REG1=XED_REG_ES:w:SUPP +} +{ +ICLASS : LDS +CPL : 3 +CATEGORY : SEGOP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0xC5 MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() +OPERANDS : REG0=GPRz_R():w MEM0:r:p REG1=XED_REG_DS:w:SUPP +} +{ +ICLASS : ENTER +CPL : 3 +CATEGORY : MISC +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : ATT_OPERAND_ORDER_EXCEPTION +PATTERN : 0xC8 DF64() UIMM16() UIMM8_1() +OPERANDS : IMM0:r:w IMM1:r:b REG0=XED_REG_STACKPUSH:w:spw:SUPP REG1=OrBP():rw:SUPP +} +{ +ICLASS : LEAVE +CPL : 3 +CATEGORY : MISC +EXTENSION : BASE +ISA_SET : I186 +ATTRIBUTES : fixed_base0 +PATTERN : 0xC9 DF64() +# Ignoring STACKPOP semantics for LEAVE because it accesses memory at rBP because of +# the initial copy of rBP to rSP as part of the LEAVE's execution. +OPERANDS : MEM0:r:SUPP:v BASE0=ArBP():r:SUPP SEG0=FINAL_SSEG0():r:SUPP REG0=OrBP():rw:SUPP REG1=OrSP():rw:SUPP +} +{ +ICLASS : RET_FAR +DISASM_INTEL: ret far +DISASM_ATTSV: lcall +CPL : 3 +CATEGORY : RET +ATTRIBUTES : FAR_XFER NOTSX +EXTENSION : BASE +ISA_SET : I86 +COMMENT : same privilege level does 2 pops (spw2). inter-privilege level does 4 (not represented) +PATTERN : 0xCA UIMM16() +OPERANDS : IMM0:r:w REG0=XED_REG_STACKPOP:r:spw2:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : RET_FAR +DISASM_INTEL: ret far +DISASM_ATTSV: lcall +CPL : 3 +CATEGORY : RET +ATTRIBUTES : FAR_XFER NOTSX +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xCB +OPERANDS : REG0=XED_REG_STACKPOP:r:spw2:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : INT3 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : INTERRUPT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ vif-mod ac-mod vm-tst vm-mod rf-0 nt-mod iopl-tst if-mod tf-0 ] +PATTERN : 0xCC +OPERANDS : REG0=rIP():w:SUPP +} +{ +ICLASS : INT +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : INTERRUPT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ vif-mod ac-mod vm-tst vm-mod rf-0 nt-mod iopl-tst if-mod tf-0 ] +PATTERN : 0xCD UIMM8() +OPERANDS : IMM0:r:b REG0=rIP():w:SUPP +} +{ +ICLASS : INTO +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : INTERRUPT +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ ac-mod vm-tst vm-mod rf-0 nt-mod iopl-tst of-tst if-mod tf-mod ] +PATTERN : 0xCE not64 +OPERANDS : REG0=rIP():w:SUPP +} +{ +ICLASS : IRET +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : RET +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ id-pop vip-pop vif-pop ac-pop vm-tst vm-pop rf-pop nt-tst nt-pop iopl-tst iopl-pop of-pop df-pop if-pop tf-pop sf-pop zf-pop af-pop pf-pop cf-pop ] +PATTERN : 0xCF EOSZ=1 +OPERANDS : REG0=XED_REG_STACKPOP:r:spw3:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : IRETD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : RET +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ id-pop vip-pop vif-pop ac-pop vm-tst vm-pop rf-pop nt-tst nt-pop iopl-tst iopl-pop of-pop df-pop if-pop tf-pop sf-pop zf-pop af-pop pf-pop cf-pop ] +PATTERN : 0xCF EOSZ=2 +OPERANDS : REG0=XED_REG_STACKPOP:r:spw3:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : IRETQ +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : RET +EXTENSION : LONGMODE +FLAGS : MUST [ id-pop vip-pop vif-pop ac-pop vm-tst vm-pop rf-pop nt-tst nt-pop iopl-tst iopl-pop of-pop df-pop if-pop tf-pop sf-pop zf-pop af-pop pf-pop cf-pop ] +PATTERN : 0xCF EOSZ=3 mode64 +# FIXME: This is only an approximate width for the stack pops +OPERANDS : REG0=XED_REG_STACKPOP:r:spw3:SUPP REG1=rIP():w:SUPP +} +{ +ICLASS : AAM +CPL : 3 +CATEGORY : DECIMAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-mod zf-mod af-u pf-mod cf-u ] +PATTERN : 0xD4 not64 SIMM8() +OPERANDS : IMM0:r:b:i8 REG0=XED_REG_AL:rw:SUPP REG1=XED_REG_AH:w:SUPP +} +{ +ICLASS : AAD +CPL : 3 +CATEGORY : DECIMAL +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-u sf-mod zf-mod af-u pf-mod cf-u ] +PATTERN : 0xD5 not64 SIMM8() +OPERANDS : IMM0:r:b:i8 REG0=XED_REG_AL:rw:SUPP REG1=XED_REG_AH:rw:SUPP +} +{ +ICLASS : SALC +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ cf-tst ] +PATTERN : 0xD6 not64 +OPERANDS : REG0=XED_REG_AL:w:SUPP +COMMENT : UNDOC - "The Undocumented PC", 2nd ed 1997, says it is present on all Intel CPUs of that time. +} +{ +ICLASS : XLAT +CPL : 3 +CATEGORY : MISC +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : fixed_base0 +PATTERN : 0xD7 OVERRIDE_SEG0() +OPERANDS : MEM0:r:SUPP:b BASE0=ArBX():r:SUPP INDEX=XED_REG_AL:r:SUPP REG0=XED_REG_AL:w:SUPP SEG0=FINAL_DSEG():r:SUPP SCALE=1:r:SUPP +} + + +{ +ICLASS : LOOPNE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +PATTERN : 0xE0 MODEP5=1 REP=0 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +PATTERN : 0xE0 MODEP5=1 REP=2 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +PATTERN : 0xE0 MODEP5=0 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP + +# REPNE WITH A E1 (LOOPE) makes a LOOPNE on P5-class machines UNDOC +PATTERN : 0xE1 MODEP5=1 REP=2 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +} +{ +ICLASS : LOOPE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +PATTERN : 0xE1 MODEP5=1 REP=0 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +PATTERN : 0xE1 MODEP5=1 REP=3 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +PATTERN : 0xE1 MODEP5=0 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP + +# REPE WITH A E0 (LOOPNE) makes a LOOPE on P5-class machines UNDOC +PATTERN : 0xE0 MODEP5=1 REP=3 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +} + + + +{ +ICLASS : LOOP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xE2 DF64() BRDISP8() IMMUNE66_LOOP64() +OPERANDS : RELBR:r:b:i8 REG0=ArCX():rw:SUPP REG1=rIP():rw:SUPP +} + +{ +ICLASS : JCXZ +COMMENT : Same opcode as JCXZ/JECXZ/JRCXZ -- asz modulated +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0xE3 eamode16 BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=XED_REG_CX:r:SUPP REG1=rIP():rw:SUPP +} +{ +ICLASS : JECXZ +COMMENT : Same opcode as JCXZ/JECXZ/JRCXZ -- asz modulated +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0xE3 eamode32 BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=XED_REG_ECX:r:SUPP REG1=rIP():rw:SUPP +} +{ +ICLASS : JRCXZ +COMMENT : Same opcode as JCXZ/JECXZ/JRCXZ -- asz modulated +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : LONGMODE +PATTERN : 0xE3 eamode64 BRDISP8() FORCE64() +OPERANDS : RELBR:r:b:i8 REG0=XED_REG_RCX:r:SUPP REG1=rIP():rw:SUPP +} + +{ +ICLASS : IN +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP NOTSX +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xE4 UIMM8() IMMUNE_REXW() +OPERANDS : REG0=XED_REG_AL:w:IMPL IMM0:r:b +} +{ +ICLASS : IN +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xE5 UIMM8() IMMUNE_REXW() +OPERANDS : REG0=OeAX():w:IMPL IMM0:r:b +} + +{ +ICLASS : OUT +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX BYTEOP +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xE6 UIMM8() IMMUNE_REXW() +OPERANDS : IMM0:r:b REG0=XED_REG_AL:r:IMPL +} + +{ +ICLASS : OUT +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xE7 UIMM8() IMMUNE_REXW() +OPERANDS : IMM0:r:b REG0=OeAX():r:IMPL +} + +{ +ICLASS : JMP +CPL : 3 +CATEGORY : UNCOND_BR +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: MPX_PREFIX_ABLE +PATTERN : 0xE9 not64 BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +PATTERN : 0xE9 mode64 FORCE64() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} +{ +ICLASS : JMP_FAR +DISASM_INTEL: jmp far +DISASM_ATTSV: ljmp +CPL : 3 +CATEGORY : UNCOND_BR +ATTRIBUTES : FAR_XFER NOTSX +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xEA not64 BRDISPz() UIMM16() +OPERANDS : PTR:r:p IMM0:r:w REG0=rIP():w:SUPP +} +{ +ICLASS : JMP +CPL : 3 +CATEGORY : UNCOND_BR +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xEB DF64() BRDISP8() +OPERANDS : RELBR:r:b:i8 REG0=rIP():rw:SUPP +} +{ +ICLASS : IN +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xEC IMMUNE_REXW() +OPERANDS : REG0=XED_REG_AL:w:IMPL REG1=XED_REG_DX:r:IMPL +} +{ +ICLASS : IN +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xED IMMUNE_REXW() +OPERANDS : REG0=OeAX():w:IMPL REG1=XED_REG_DX:r:IMPL +} +{ +ICLASS : OUT +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xEE IMMUNE_REXW() +OPERANDS : REG0=XED_REG_DX:r:IMPL REG1=XED_REG_AL:r:IMPL +} +{ +ICLASS : OUT +CPL : 3 +CATEGORY : IO +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ iopl-tst ] +PATTERN : 0xEF IMMUNE_REXW() +OPERANDS : REG0=XED_REG_DX:r:IMPL REG1=OeAX():r:IMPL +} +{ +ICLASS : INT1 +CPL : 3 +CATEGORY : INTERRUPT +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0xF1 +OPERANDS : +COMMENT : UNDOC by Intel, but in AMD's opcode map +} +{ +ICLASS : HLT +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ATTRIBUTES : RING0 NOTSX +ISA_SET : I86 +PATTERN : 0xF4 +OPERANDS : +} +{ +ICLASS : CMC +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ cf-tst cf-mod ] +PATTERN : 0xF5 +OPERANDS : +} +{ +ICLASS : CLC +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ cf-0 ] +PATTERN : 0xF8 +OPERANDS : +} +{ +ICLASS : STC +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ cf-1 ] +PATTERN : 0xF9 +OPERANDS : +} +{ +ICLASS : CLI +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ vif-mod iopl-tst if-mod ] +PATTERN : 0xFA +OPERANDS : +} +{ +ICLASS : STI +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +COMMENT : Inhibits all interrupts until after next instr +FLAGS : MUST [ vif-mod iopl-tst if-mod ] +PATTERN : 0xFB +OPERANDS : +} +{ +ICLASS : CLD +ATTRIBUTES: NOTSX_COND +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ df-0 ] +PATTERN : 0xFC +OPERANDS : +} +{ +ICLASS : STD +ATTRIBUTES: NOTSX_COND +CPL : 3 +CATEGORY : FLAGOP +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ df-1 ] +PATTERN : 0xFD +OPERANDS : +} +{ +ICLASS : LAR +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES : PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +COMMENT : LAR only sometimes writes its destination register. +PATTERN : 0x0F 0x02 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:w +PATTERN : 0x0F 0x02 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : LSL +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286PROTECTED +ATTRIBUTES : PROTECTED_MODE +FLAGS : MUST [ zf-mod ] +PATTERN : 0x0F 0x03 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:w + +PATTERN : 0x0F 0x03 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRz_B():r +} +{ +ICLASS : SYSCALL +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : SYSCALL +EXTENSION : LONGMODE +ISA_SET : LONGMODE +FLAGS : MUST [ id-mod vip-mod vif-mod ac-mod vm-0 rf-0 nt-mod iopl-mod of-mod df-mod if-mod tf-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0x05 mode64 FORCE64() +OPERANDS : REG0=rIP():w:SUPP +COMMENT : 32B VERSION IS ONLY SUPPORTED ON AMD +} +{ +ICLASS : CLTS +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I286REAL +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x06 +OPERANDS : +} +{ +ICLASS : SYSRET +CPL : 0 +CATEGORY : SYSRET +ATTRIBUTES: PROTECTED_MODE RING0 NOTSX +EXTENSION : LONGMODE +ISA_SET : LONGMODE +FLAGS : MUST [ id-mod vip-mod vif-mod ac-mod rf-0 nt-mod iopl-mod of-mod df-mod if-mod tf-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0x07 mode64 eosz64 +OPERANDS : REG0=XED_REG_RIP:w:SUPP +PATTERN : 0x0F 0x07 mode64 eosz32 +OPERANDS : REG0=XED_REG_EIP:w:SUPP +COMMENT : 32B VERSION IS ONLY SUPPORTED ON AMD +} +{ +ICLASS : MOVUPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4M +ATTRIBUTES : +PATTERN : 0x0F 0x10 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps + +PATTERN : 0x0F 0x10 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +IFORM : MOVUPS_XMMps_XMMps_0F10 + +PATTERN : 0x0F 0x11 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:ps REG0=XMM_R():r:ps + +PATTERN : 0x0F 0x11 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:ps REG1=XMM_R():r:ps +IFORM : MOVUPS_XMMps_XMMps_0F11 +} +{ +ICLASS : MOVLPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x13 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:w:q:f32 REG0=XMM_R():r:ps:f32 +} +{ +ICLASS : UNPCKLPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +COMMENT : mem form only uses q portion of the dq load. See SDM. +PATTERN : 0x0F 0x14 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:dq +PATTERN : 0x0F 0x14 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:q +} +{ +ICLASS : UNPCKHPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : SKIPLOW64 REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x15 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:dq +PATTERN : 0x0F 0x15 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:dq +} +{ +ICLASS : MOVHPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x17 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:w:q:f32 REG0=XMM_R():r:ps:f32 +} +{ +ICLASS : MOVSS +CPL : 3 +ATTRIBUTES : simd_scalar +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +PATTERN : 0x0F 0x10 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:ss + +PATTERN : 0x0F 0x10 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ss REG1=XMM_B():r:ss +IFORM : MOVSS_XMMss_XMMss_0F10 + +PATTERN : 0x0F 0x11 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : MEM0:w:ss REG0=XMM_R():r:ss + +PATTERN : 0x0F 0x11 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_B():w:ss REG1=XMM_R():r:ss +IFORM : MOVSS_XMMss_XMMss_0F11 +} +{ +ICLASS : MOVSLDUP +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x12 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps +PATTERN : 0x0F 0x12 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +} +{ +ICLASS : MOVSHDUP +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x16 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps +PATTERN : 0x0F 0x16 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +} +{ +ICLASS : MOVUPD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4M +ATTRIBUTES : +PATTERN : 0x0F 0x10 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:pd MEM0:r:pd + +PATTERN : 0x0F 0x10 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:pd REG1=XMM_B():r:pd +IFORM : MOVUPD_XMMpd_XMMpd_0F10 + +PATTERN : 0x0F 0x11 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:pd REG0=XMM_R():r:pd + +PATTERN : 0x0F 0x11 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_B():w:pd REG1=XMM_R():r:pd +IFORM : MOVUPD_XMMpd_XMMpd_0F11 +} +{ +ICLASS : MOVLPD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x12 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:sd MEM0:r:q +PATTERN : 0x0F 0x13 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:sd +} +{ +ICLASS : UNPCKLPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +COMMENT : mem form only uses q portion of the dq load. See SDM. +PATTERN : 0x0F 0x14 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:dq +PATTERN : 0x0F 0x14 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:q +} +{ +ICLASS : UNPCKHPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : SKIPLOW64 REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x15 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:dq +PATTERN : 0x0F 0x15 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:q +} +{ +ICLASS : MOVHPD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x16 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:sd MEM0:r:q +PATTERN : 0x0F 0x17 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:sd +} +{ +ICLASS : MOVSD_XMM +DISASM : movsd +CPL : 3 +ATTRIBUTES : simd_scalar +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +PATTERN : 0x0F 0x10 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:sd + +PATTERN : 0x0F 0x10 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:sd REG1=XMM_B():r:sd +IFORM : MOVSD_XMM_XMMsd_XMMsd_0F10 + +PATTERN : 0x0F 0x11 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : MEM0:w:sd REG0=XMM_R():r:sd + +PATTERN : 0x0F 0x11 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_B():w:sd REG1=XMM_R():r:sd +IFORM : MOVSD_XMM_XMMsd_XMMsd_0F11 +} +{ +ICLASS : MOVDDUP +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x12 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:q +PATTERN : 0x0F 0x12 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:q +} + +{ +ICLASS : MOV_CR +DISASM : mov +CPL : 0 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : RING0 NOTSX +COMMENT : MODRM.MOD=00/01/10 aliased to MODRM.MOD=11 +PATTERN : 0x0F 0x22 MOD[mm] REG[rrr] RM[nnn] CR_WIDTH() not64 +OPERANDS : REG0=CR_R():w REG1=GPR32_B():r + +PATTERN : 0x0F 0x22 MOD[mm] REG[rrr] RM[nnn] CR_WIDTH() mode64 +OPERANDS : REG0=CR_R():w REG1=GPR64_B():r +} + +{ +ICLASS : MOV_CR +DISASM : mov +CPL : 0 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : RING0 +COMMENT : MODRM.MOD=00/01/10 aliased to MODRM.MOD=11 +PATTERN : 0x0F 0x20 MOD[mm] REG[rrr] RM[nnn] CR_WIDTH() not64 +OPERANDS : REG0=GPR32_B():w REG1=CR_R():r + +PATTERN : 0x0F 0x20 MOD[mm] REG[rrr] RM[nnn] CR_WIDTH() mode64 +OPERANDS : REG0=GPR64_B():w REG1=CR_R():r +} + +{ +ICLASS : MOV_DR +DISASM : mov +CPL : 0 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : RING0 NOTSX +COMMENT : MODRM.MOD=00/01/10 aliased to MODRM.MOD=11 +PATTERN : 0x0F 0x23 MOD[mm] REG[rrr] RM[nnn] DF64() not64 +OPERANDS : REG0=DR_R():w REG1=GPR32_B():r + +PATTERN : 0x0F 0x23 MOD[mm] REG[rrr] RM[nnn] DF64() mode64 +OPERANDS : REG0=DR_R():w REG1=GPR64_B():r +} + +{ +ICLASS : MOV_DR +DISASM : mov +CPL : 0 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES : RING0 +COMMENT : MODRM.MOD=00/01/10 aliased to MODRM.MOD=11 +PATTERN : 0x0F 0x21 MOD[mm] REG[rrr] RM[nnn] DF64() not64 +OPERANDS : REG0=GPR32_B():w REG1=DR_R():r + +PATTERN : 0x0F 0x21 MOD[mm] REG[rrr] RM[nnn] DF64() mode64 +OPERANDS : REG0=GPR64_B():w REG1=DR_R():r +} + + +{ +ICLASS : WRMSR +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : PENTIUMREAL +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x30 +OPERANDS : REG0=XED_REG_EAX:r:SUPP REG1=XED_REG_EDX:r:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_MSRS:w:SUPP +} +{ +ICLASS : RDTSC +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : PENTIUMREAL +PATTERN : 0x0F 0x31 +OPERANDS : REG0=XED_REG_EAX:w:SUPP REG1=XED_REG_EDX:w:SUPP REG2=XED_REG_TSC:r:SUPP +} +{ +ICLASS : RDMSR +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : PENTIUMREAL +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x32 +OPERANDS : REG0=XED_REG_EAX:w:SUPP REG1=XED_REG_EDX:w:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_MSRS:r:SUPP +} +{ +ICLASS : RDPMC +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : RDPMC +PATTERN : 0x0F 0x33 +OPERANDS : REG0=XED_REG_EAX:w:SUPP REG1=XED_REG_EDX:w:SUPP REG2=XED_REG_ECX:r:SUPP REG3=XED_REG_MSRS:r:SUPP +} +{ +ICLASS : SYSENTER +CPL : 3 +CATEGORY : SYSCALL +EXTENSION : BASE +ISA_SET : PPRO +ATTRIBUTES: PROTECTED_MODE NOTSX +FLAGS : MUST [ vm-0 rf-0 if-0 ] +PATTERN : 0x0F 0x34 +OPERANDS : REG0=rIP():w:SUPP +COMMENT : AMD does not document support for this in 64b mode +} +{ +ICLASS : SYSEXIT +CPL : 0 +CATEGORY : SYSRET +EXTENSION : BASE +ISA_SET : PPRO +ATTRIBUTES: PROTECTED_MODE RING0 NOTSX +PATTERN : 0x0F 0x35 +OPERANDS : REG0=rIP():w:SUPP +COMMENT : AMD does not document support for this in 64b mode +} +{ +ICLASS : CMOVO +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ of-tst ] +PATTERN : 0x0F 0x40 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x40 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNO +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ of-tst ] +PATTERN : 0x0F 0x41 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x41 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVB +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ cf-tst ] +PATTERN : 0x0F 0x42 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x42 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNB +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ cf-tst ] +PATTERN : 0x0F 0x43 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x43 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVZ +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ zf-tst ] +PATTERN : 0x0F 0x44 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x44 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNZ +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ zf-tst ] +PATTERN : 0x0F 0x45 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x45 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVBE +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ cf-tst zf-tst ] +PATTERN : 0x0F 0x46 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x46 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNBE +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ cf-tst zf-tst ] +PATTERN : 0x0F 0x47 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +PATTERN : 0x0F 0x47 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : MOVMSKPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x50 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w REG1=XMM_B():r:ps +} +{ +ICLASS : SQRTPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x51 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps +PATTERN : 0x0F 0x51 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +} +{ +ICLASS : RSQRTPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x52 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps +PATTERN : 0x0F 0x52 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +} +{ +ICLASS : RCPPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x53 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps +PATTERN : 0x0F 0x53 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +} +{ +ICLASS : ANDPS +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x54 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x54 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : ANDNPS +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x55 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x55 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : ORPS +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x56 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x56 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : XORPS +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x57 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x57 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : SQRTSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x51 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:ss MEM0:r:ss +PATTERN : 0x0F 0x51 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ss REG1=XMM_B():r:ss +} +{ +ICLASS : RSQRTSS +CPL : 3 +ATTRIBUTES : simd_scalar +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +PATTERN : 0x0F 0x52 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:ss MEM0:r:ss +PATTERN : 0x0F 0x52 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ss REG1=XMM_B():r:ss +} +{ +ICLASS : RCPSS +CPL : 3 +ATTRIBUTES : simd_scalar +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_5 +PATTERN : 0x0F 0x53 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:ss MEM0:r:ss +PATTERN : 0x0F 0x53 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ss REG1=XMM_B():r:ss +} +{ +ICLASS : MOVMSKPD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0x50 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=GPR32_R():w REG1=XMM_B():r:pd +} +{ +ICLASS : SQRTPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x51 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:pd MEM0:r:pd +PATTERN : 0x0F 0x51 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:pd REG1=XMM_B():r:pd +} +{ +ICLASS : ANDPD +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x54 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x54 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : ANDNPD +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x55 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x55 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : ORPD +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x56 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x56 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : XORPD +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x57 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x57 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : SQRTSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x51 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:sd MEM0:r:sd +PATTERN : 0x0F 0x51 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:sd REG1=XMM_B():r:sd +} +{ +ICLASS : PUNPCKLBW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x60 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u8 MEM0:r:d:u8 + +PATTERN : 0x0F 0x60 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u8 REG1=MMX_B():r:d:u8 +} +{ +ICLASS : PUNPCKLWD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x61 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u16 MEM0:r:d:u16 +PATTERN : 0x0F 0x61 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u16 REG1=MMX_B():r:d:u16 +} +{ +ICLASS : PUNPCKLDQ +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x62 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u32 MEM0:r:d:u32 +PATTERN : 0x0F 0x62 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u32 REG1=MMX_B():r:d:u32 +} +{ +ICLASS : PACKSSWB +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : HALF_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x63 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +} +{ +ICLASS : PACKSSWB +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : HALF_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x63 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PCMPGTB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x64 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i8 MEM0:r:q:i8 +} +{ +ICLASS : PCMPGTB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x64 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i8 REG1=MMX_B():r:q:i8 +} +{ +ICLASS : PCMPGTW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x65 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +} +{ +ICLASS : PCMPGTW +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x65 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PCMPGTD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x66 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i32 MEM0:r:q:i32 +} +{ +ICLASS : PCMPGTD +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x66 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i32 REG1=MMX_B():r:q:i32 +} +{ +ICLASS : PACKUSWB +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : HALF_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x67 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +} +{ +ICLASS : PACKUSWB +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : HALF_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x67 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PUNPCKLBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +COMMENT : mem form only uses q portion of the dq load. See SDM. +PATTERN : 0x0F 0x60 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x60 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PUNPCKLWD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +COMMENT : mem form only uses q portion of the dq load. See SDM. +PATTERN : 0x0F 0x61 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x61 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PUNPCKLDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +COMMENT : mem form only uses q portion of the dq load. See SDM. +PATTERN : 0x0F 0x62 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x62 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PACKSSWB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT HALF_WIDE_OUTPUT +PATTERN : 0x0F 0x63 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0x63 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : PCMPGTB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x64 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i8 MEM0:r:dq:i8 +PATTERN : 0x0F 0x64 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i8 REG1=XMM_B():r:dq:i8 +} +{ +ICLASS : PCMPGTW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x65 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0x65 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : PCMPGTD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x66 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +PATTERN : 0x0F 0x66 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +} +{ +ICLASS : PACKUSWB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT HALF_WIDE_OUTPUT +PATTERN : 0x0F 0x67 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0x67 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : PSHUFW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x70 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=MMX_R():w:q:u16 MEM0:r:q:u16 IMM0:r:b +PATTERN : 0x0F 0x70 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_R():w:q:u16 REG1=MMX_B():r:q:u16 IMM0:r:b +} +{ +ICLASS : PCMPEQB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x74 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i8 MEM0:r:q:i8 +PATTERN : 0x0F 0x74 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i8 REG1=MMX_B():r:q:i8 +} +{ +ICLASS : PCMPEQW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x75 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +PATTERN : 0x0F 0x75 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PCMPEQD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0x76 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i32 MEM0:r:q:i32 +PATTERN : 0x0F 0x76 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i32 REG1=MMX_B():r:q:i32 +} +{ +ICLASS : EMMS +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : x87_mmx_state_w NOTSX +PATTERN : 0x0F 0x77 no_refining_prefix +OPERANDS : +} +{ +ICLASS : PSHUFD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x70 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:dq:u32 IMM0:r:b +PATTERN : 0x0F 0x70 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:u32 IMM0:r:b +} +{ +ICLASS : PCMPEQB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x74 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i8 MEM0:r:dq:i8 +PATTERN : 0x0F 0x74 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i8 REG1=XMM_B():r:dq:i8 +} +{ +ICLASS : PCMPEQW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x75 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0x75 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : PCMPEQD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x76 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +PATTERN : 0x0F 0x76 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +} +{ +ICLASS : PSHUFLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x70 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:dq:u16 IMM0:r:b +PATTERN : 0x0F 0x70 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u16 IMM0:r:b +} +{ +ICLASS : PSHUFHW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x70 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:dq:u16 IMM0:r:b +PATTERN : 0x0F 0x70 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u16 IMM0:r:b +} +{ +ICLASS : JO +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x80 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} +{ +ICLASS : JO +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ of-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x80 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JNO +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ of-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x81 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JNO +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x81 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JB +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x82 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JB +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x82 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JNB +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x83 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP + +} +{ +ICLASS : JNB +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x83 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JZ +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x84 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JZ +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x84 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JNZ +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x85 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP + +} +{ +ICLASS : JNZ +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x85 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JBE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst zf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x86 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JBE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x86 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JNBE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst zf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x87 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JNBE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ cf-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x87 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + + +{ +ICLASS : SETO +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ of-tst ] +PATTERN : 0x0F 0x90 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x90 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNO +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ of-tst ] +PATTERN : 0x0F 0x91 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x91 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETB +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ cf-tst ] +PATTERN : 0x0F 0x92 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x92 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNB +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ cf-tst ] +PATTERN : 0x0F 0x93 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x93 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETZ +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ zf-tst ] +PATTERN : 0x0F 0x94 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x94 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNZ +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ zf-tst ] +PATTERN : 0x0F 0x95 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x95 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETBE +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ cf-tst zf-tst ] +PATTERN : 0x0F 0x96 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x96 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNBE +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ cf-tst zf-tst ] +PATTERN : 0x0F 0x97 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x97 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x0F 0xA0 DF64() +OPERANDS : REG0=XED_REG_FS:r:IMPL REG1=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xA1 DF64() +OPERANDS : REG0=XED_REG_FS:w:IMPL REG1=XED_REG_STACKPOP:r:spw:SUPP +} +{ +ICLASS : CPUID +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MISC +EXTENSION : BASE +ISA_SET : I486REAL +PATTERN : 0x0F 0xA2 +OPERANDS : REG0=XED_REG_EAX:rw:SUPP REG1=XED_REG_EBX:w:SUPP REG2=XED_REG_ECX:crw:SUPP REG3=XED_REG_EDX:w:SUPP +} +{ +ICLASS : BT +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xA3 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:r:v REG0=GPRv_R():r +PATTERN : 0x0F 0xA3 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +} + +{ +ICLASS : CMPXCHG_LOCK +DISASM : cmpxchg +CPL : 3 +CATEGORY : SEMAPHORE +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +EXTENSION : BASE +ISA_SET : I486REAL +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xB0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rcw:b REG0=GPR8_R():r REG1=XED_REG_AL:rcw:SUPP +} +{ +ICLASS : CMPXCHG +CPL : 3 +CATEGORY : SEMAPHORE +ATTRIBUTES : BYTEOP LOCKABLE +EXTENSION : BASE +ISA_SET : I486REAL +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xB0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rcw:b REG0=GPR8_R():r REG1=XED_REG_AL:rcw:SUPP +} +{ +ICLASS : CMPXCHG +CPL : 3 +CATEGORY : SEMAPHORE +ATTRIBUTES : BYTEOP +EXTENSION : BASE +ISA_SET : I486REAL +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xB0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rcw REG1=GPR8_R():r REG2=XED_REG_AL:rcw:SUPP +} + + + +{ +ICLASS : CMPXCHG_LOCK +DISASM : cmpxchg +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xB1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rcw:v REG0=GPRv_R():r REG1=OrAX():rcw:SUPP +} +{ +ICLASS : CMPXCHG +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xB1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rcw:v REG0=GPRv_R():r REG1=OrAX():rcw:SUPP +} +{ +ICLASS : CMPXCHG +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xB1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rcw REG1=GPRv_R():r REG2=OrAX():rcw:SUPP +} + + + +{ +ICLASS : LSS +CPL : 3 +CATEGORY : SEGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xB2 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:p2 REG1=XED_REG_SS:w:SUPP +} +{ +ICLASS : BTR_LOCK +DISASM : btr +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xB3 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : BTR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xB3 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : BTR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xB3 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +} + +{ +ICLASS : LFS +CPL : 3 +CATEGORY : SEGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xB4 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:p2 REG1=XED_REG_FS:w:SUPP +} +{ +ICLASS : LGS +CPL : 3 +CATEGORY : SEGOP +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xB5 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:p2 REG1=XED_REG_GS:w:SUPP +} +{ +ICLASS : MOVZX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x0F 0xB6 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:b +PATTERN : 0x0F 0xB6 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w REG1=GPR8_B():r +PATTERN : 0x0F 0xB7 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:w +PATTERN : 0x0F 0xB7 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w REG1=GPR16_B():r +} +{ +ICLASS : XADD_LOCK +DISASM : xadd +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : BYTEOP LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xC0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():rw +} +{ +ICLASS : XADD +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : BYTEOP LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xC0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:b REG0=GPR8_R():rw +} +{ +ICLASS : XADD +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : BYTEOP +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xC0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():rw REG1=GPR8_R():rw +} + + + +{ +ICLASS : XADD_LOCK +DISASM : xadd +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x0F 0xC1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():rw +} +{ +ICLASS : XADD +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x0F 0xC1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():rw +} +{ +ICLASS : XADD +CPL : 3 +CATEGORY : SEMAPHORE +EXTENSION : BASE +ISA_SET : I486REAL +FLAGS : MUST [ of-mod sf-mod zf-mod af-mod pf-mod cf-mod ] + +PATTERN : 0x0F 0xC1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():rw +} + + +{ +ICLASS : CMPPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0xC2 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps IMM0:r:b +PATTERN : 0x0F 0xC2 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps IMM0:r:b +} +{ +ICLASS : MOVNTI +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +ATTRIBUTES : IGNORES_OSFXSR NOTSX +PATTERN : 0x0F 0xC3 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] EOSZ!=3 MODRM() +OPERANDS : MEM0:w:d REG0=GPR32_R():r +PATTERN : 0x0F 0xC3 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] EOSZ=3 MODRM() +OPERANDS : MEM0:w:q REG0=GPR64_R():r +} +{ +ICLASS : PINSRW +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : NOTSX +PATTERN : 0x0F 0xC4 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=MMX_R():rw:q:u16 MEM0:r:w:u16 IMM0:r:b +PATTERN : 0x0F 0xC4 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_R():rw:q:u16 REG1=GPR32_B():r IMM0:r:b +} +{ +ICLASS : PEXTRW +EXCEPTIONS: mmx-nomem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xC5 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_R():w REG1=MMX_B():r:q:u16 IMM0:r:b +} +{ +ICLASS : SHUFPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xC6 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps IMM0:r:b +PATTERN : 0x0F 0xC6 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps IMM0:r:b +} +{ +ICLASS : CMPSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0xC2 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss IMM0:r:b +PATTERN : 0x0F 0xC2 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() UIMM8() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss IMM0:r:b +} +{ +ICLASS : CMPPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0xC2 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd IMM0:r:b +PATTERN : 0x0F 0xC2 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd IMM0:r:b +} +{ +ICLASS : PINSRW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0xC4 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:w IMM0:r:b +PATTERN : 0x0F 0xC4 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=GPR32_B():r IMM0:r:b +} +{ +ICLASS : PEXTRW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +PATTERN : 0x0F 0xC5 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=GPR32_R():w REG1=XMM_B():r:dq IMM0:r:b +} +{ +ICLASS : SHUFPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xC6 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd IMM0:r:b +PATTERN : 0x0F 0xC6 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd IMM0:r:b +} +{ +ICLASS : CMPSD_XMM +DISASM : cmpsd +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0xC2 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd IMM0:r:b +PATTERN : 0x0F 0xC2 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() UIMM8() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd IMM0:r:b +} +{ +ICLASS : PSRLW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD1 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u16 MEM0:r:q +} +{ +ICLASS : PSRLW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD1 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u16 REG1=MMX_B():r:q +} +{ +ICLASS : PSRLD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD2 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u32 MEM0:r:q +} +{ +ICLASS : PSRLD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD2 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u32 REG1=MMX_B():r:q +} +{ +ICLASS : PSRLQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD3 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u64 MEM0:r:q +} +{ +ICLASS : PSRLQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD3 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u64 REG1=MMX_B():r:q +} +{ +ICLASS : PADDQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSE2 +PATTERN : 0x0F 0xD4 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u64 MEM0:r:q:u64 +PATTERN : 0x0F 0xD4 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u64 REG1=MMX_B():r:q:u64 +} +{ +ICLASS : PMULLW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD5 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +PATTERN : 0x0F 0xD5 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PMOVMSKB +EXCEPTIONS: mmx-nomem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : SSE +COMMENT : KNI on PentiumIII. MMX instructions intro'd w/SSE +PATTERN : 0x0F 0xD7 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w REG1=MMX_B():r:q:i8 +} +{ +ICLASS : ADDSUBPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0xD0 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0xD0 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : PSRLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD1 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : PSRLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD1 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + + + +{ +ICLASS : PSRLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD2 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : PSRLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD2 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + + + + +{ +ICLASS : PSRLQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD3 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : PSRLQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD3 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + + + + +{ +ICLASS : PADDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD4 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xD4 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMULLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD5 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xD5 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMOVMSKB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +PATTERN : 0x0F 0xD7 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=GPR32_R():w REG1=XMM_B():r:dq:i8 +} +{ +ICLASS : MOVQ2DQ +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +ATTRIBUTES : MMX_EXCEPT NOTSX +PATTERN : 0x0F 0xD6 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=MMX_B():r:q:u64 +} +{ +ICLASS : ADDSUBPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0xD0 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0xD0 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : MOVDQ2Q +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +ATTRIBUTES : MMX_EXCEPT NOTSX +PATTERN : 0x0F 0xD6 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=MMX_R():w:q:u64 REG1=XMM_B():r:q:u64 +} +{ +ICLASS : PAVGB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE0 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PAVGB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE0 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i8 REG1=MMX_B():r:q:i8 +} +{ +ICLASS : PSRAW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE1 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q +} +{ +ICLASS : PSRAW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE1 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q +} +{ +ICLASS : PSRAD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE2 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i32 MEM0:r:q +} +{ +ICLASS : PSRAD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE2 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i32 REG1=MMX_B():r:q +} +{ +ICLASS : PAVGW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE3 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +} +{ +ICLASS : PAVGW +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE3 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PMULHUW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE4 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u16 MEM0:r:q:u16 +} +{ +ICLASS : PMULHUW +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE4 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u16 REG1=MMX_B():r:q:u16 +} +{ +ICLASS : PMULHW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE5 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +} +{ +ICLASS : PMULHW +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE5 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : MOVNTQ +EXCEPTIONS: mmx-nofp2 +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE7 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q REG0=MMX_R():r:q +} +{ +ICLASS : PAVGB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE0 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:u8 MEM0:r:dq:u8 +PATTERN : 0x0F 0xE0 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:u8 REG1=XMM_B():r:dq:u8 +} + + +{ +ICLASS : PSRAW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE1 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:u64 +} +{ +ICLASS : PSRAW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE1 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:u64 +} + + + + +{ +ICLASS : PSRAD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE2 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i32 MEM0:r:dq:u64 +} +{ +ICLASS : PSRAD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE2 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:u64 +} + + + + +{ +ICLASS : PAVGW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE3 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:u16 MEM0:r:dq:u16 +PATTERN : 0x0F 0xE3 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:u16 REG1=XMM_B():r:dq:u16 +} +{ +ICLASS : PMULHUW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE4 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:u16 MEM0:r:dq:u16 +PATTERN : 0x0F 0xE4 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:u16 REG1=XMM_B():r:dq:u16 +} +{ +ICLASS : PMULHW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE5 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0xE5 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : CVTTPD2DQ +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0xE6 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:pd:f64 +PATTERN : 0x0F 0xE6 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:pd:f64 +} +{ +ICLASS : MOVNTDQ +ATTRIBUTES: REQUIRES_ALIGNMENT NOTSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_1 +PATTERN : 0x0F 0xE7 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:dq +} +{ +ICLASS : CVTDQ2PD +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : MXCSR +PATTERN : 0x0F 0xE6 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:pd:f64 MEM0:r:q:i32 +PATTERN : 0x0F 0xE6 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:pd:f64 REG1=XMM_B():r:q:i32 +} +{ +ICLASS : CVTPD2DQ +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0xE6 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:pd:f64 +PATTERN : 0x0F 0xE6 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:pd:f64 +} +{ +ICLASS : PSLLW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xF1 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u16 MEM0:r:q +PATTERN : 0x0F 0xF1 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u16 REG1=MMX_B():r:q +} +{ +ICLASS : PSLLD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xF2 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u32 MEM0:r:q +PATTERN : 0x0F 0xF2 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u32 REG1=MMX_B():r:q +} +{ +ICLASS : PSLLQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xF3 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u64 MEM0:r:q +PATTERN : 0x0F 0xF3 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u64 REG1=MMX_B():r:q +} +{ +ICLASS : PMULUDQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSE2 +PATTERN : 0x0F 0xF4 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:u32 MEM0:r:q:u32 +PATTERN : 0x0F 0xF4 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:u32 REG1=MMX_B():r:q:u32 +} +{ +ICLASS : PMADDWD +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : DOUBLE_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0xF5 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i16 MEM0:r:q:i16 +PATTERN : 0x0F 0xF5 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i16 REG1=MMX_B():r:q:i16 +} +{ +ICLASS : PSADBW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xF6 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xF6 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : MASKMOVQ +EXCEPTIONS: mmx-nofp2 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : fixed_base0 maskop NOTSX +PATTERN : 0x0F 0xF7 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] OVERRIDE_SEG0() +OPERANDS : REG0=MMX_R():r:q:u8 REG1=MMX_B():r:q:i8 MEM0:w:q:SUPP BASE0=ArDI():r:SUPP SEG0=FINAL_DSEG():r:SUPP +} + + +{ +ICLASS : PSLLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF1 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:u16 MEM0:r:dq +} +{ +ICLASS : PSLLW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF1 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:u16 REG1=XMM_B():r:dq +} + + + +{ +ICLASS : PSLLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF2 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : PSLLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF2 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + + + + + +{ +ICLASS : PSLLQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF3 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:u64 MEM0:r:dq:u64 +} +{ +ICLASS : PSLLQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_7 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF3 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:u64 REG1=XMM_B():r:dq:u64 +} + + + +{ +ICLASS : PMULUDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF4 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xF4 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMADDWD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF5 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0xF5 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : PSADBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF6 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xF6 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : MASKMOVDQU +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : fixed_base0 maskop NOTSX +PATTERN : 0x0F 0xF7 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() OVERRIDE_SEG0() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq MEM0:w:dq:SUPP BASE0=ArDI():r:SUPP SEG0=FINAL_DSEG():r:SUPP +} +{ +ICLASS : LDDQU +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : +PATTERN : 0x0F 0xF0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() f2_refining_prefix +OPERANDS : REG0=XMM_R():w:pd MEM0:r:dq +} +{ +ICLASS : INVD +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x08 +OPERANDS : +} +{ +ICLASS : WBINVD +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : BASE +ISA_SET : I486REAL +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x09 +OPERANDS : +} +{ +ICLASS : UD2 +CPL : 3 +CATEGORY : MISC +EXTENSION : BASE +ISA_SET : PPRO +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0x0B +OPERANDS : +} +{ +ICLASS : MOVAPS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_1 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x28 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps + +PATTERN : 0x0F 0x28 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps +IFORM : MOVAPS_XMMps_XMMps_0F28 + +PATTERN : 0x0F 0x29 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:ps REG0=XMM_R():r:ps + +PATTERN : 0x0F 0x29 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:ps REG1=XMM_R():r:ps +IFORM : MOVAPS_XMMps_XMMps_0F29 +} + +{ +ICLASS : CVTPI2PS +EXCEPTIONS: mmx-fp +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE +ATTRIBUTES : MXCSR MMX_EXCEPT NOTSX +PATTERN : 0x0F 0x2A no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:q:f32 MEM0:r:q:i32 +PATTERN : 0x0F 0x2A no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:q:f32 REG1=MMX_B():r:q:i32 +} +{ +ICLASS : MOVNTPS +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_1 +PATTERN : 0x0F 0x2B no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:ps +} +{ +ICLASS : CVTTPS2PI +EXCEPTIONS: mmx-fp +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE +ATTRIBUTES : MXCSR MMX_EXCEPT NOTSX +PATTERN : 0x0F 0x2C no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():w:q:i32 MEM0:r:q:f32 +PATTERN : 0x0F 0x2C no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():w:q:i32 REG1=XMM_B():r:q:f32 +} +{ +ICLASS : CVTPS2PI +EXCEPTIONS: mmx-fp +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE +ATTRIBUTES : MXCSR MMX_EXCEPT NOTSX +PATTERN : 0x0F 0x2D no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():w:q:f32 MEM0:r:q:i32 +PATTERN : 0x0F 0x2D no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():w:q:f32 REG1=XMM_B():r:q:i32 +} +{ +ICLASS : UCOMISS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +FLAGS : MUST [ of-0 sf-0 zf-mod af-0 pf-mod cf-mod ] +PATTERN : 0x0F 0x2E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:ss MEM0:r:ss +PATTERN : 0x0F 0x2E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:ss REG1=XMM_B():r:ss +} +{ +ICLASS : COMISS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +FLAGS : MUST [ of-0 sf-0 zf-mod af-0 pf-mod cf-mod ] +PATTERN : 0x0F 0x2F no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:ss MEM0:r:ss +PATTERN : 0x0F 0x2F no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:ss REG1=XMM_B():r:ss +} +{ +ICLASS : CVTSI2SS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x2A f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix MODRM() +OPERANDS : REG0=XMM_R():w:ss:f32 MEM0:r:d:i32 +PATTERN : 0x0F 0x2A f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix +OPERANDS : REG0=XMM_R():w:ss:f32 REG1=GPR32_B():r:d:i32 +PATTERN : 0x0F 0x2A f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix MODRM() +OPERANDS : REG0=XMM_R():w:ss:f32 MEM0:r:q:i32 +PATTERN : 0x0F 0x2A f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix +OPERANDS : REG0=XMM_R():w:ss:f32 REG1=GPR64_B():r:q:i32 +} +{ +ICLASS : CVTTSS2SI +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x2C f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:ss:f32 +PATTERN : 0x0F 0x2C f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:ss:f32 +PATTERN : 0x0F 0x2C f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:ss:f32 +PATTERN : 0x0F 0x2C f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:ss:f32 +} +{ +ICLASS : CVTSS2SI +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x2D f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:ss:f32 +PATTERN : 0x0F 0x2D f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:ss:f32 +PATTERN : 0x0F 0x2D f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:ss:f32 +PATTERN : 0x0F 0x2D f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:ss:f32 +} +{ +ICLASS : MOVAPD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_1 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x28 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:pd MEM0:r:pd + +PATTERN : 0x0F 0x28 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:pd REG1=XMM_B():r:pd +IFORM : MOVAPD_XMMpd_XMMpd_0F28 + +PATTERN : 0x0F 0x29 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:pd REG0=XMM_R():r:pd + +PATTERN : 0x0F 0x29 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_B():w:pd REG1=XMM_R():r:pd +IFORM : MOVAPD_XMMpd_XMMpd_0F29 +} +{ +ICLASS : CVTPI2PD +EXCEPTIONS: mmx-nofp +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +ATTRIBUTES: MXCSR MMX_EXCEPT NOTSX +PATTERN : 0x0F 0x2A osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:pd:f64 MEM0:r:q:i32 +PATTERN : 0x0F 0x2A osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:pd:f64 REG1=MMX_B():r:q:i32 +} +{ +ICLASS : MOVNTPD +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_1 +PATTERN : 0x0F 0x2B osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:pd +} +{ +ICLASS : CVTTPD2PI +EXCEPTIONS: mmx-fp-16align +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR MMX_EXCEPT NOTSX +PATTERN : 0x0F 0x2C osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=MMX_R():w:q:i32 MEM0:r:pd:f64 +PATTERN : 0x0F 0x2C osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=MMX_R():w:q:i32 REG1=XMM_B():r:pd:f64 +} +{ +ICLASS : CVTPD2PI +EXCEPTIONS: mmx-fp-16align +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR MMX_EXCEPT NOTSX +PATTERN : 0x0F 0x2D osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=MMX_R():w:q:i32 MEM0:r:pd:f64 +PATTERN : 0x0F 0x2D osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=MMX_R():w:q:i32 REG1=XMM_B():r:pd:f64 +} +{ +ICLASS : UCOMISD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +FLAGS : MUST [ of-0 sf-0 zf-mod af-0 pf-mod cf-mod ] +PATTERN : 0x0F 0x2E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():r:sd MEM0:r:sd +PATTERN : 0x0F 0x2E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():r:sd REG1=XMM_B():r:sd +} +{ +ICLASS : COMISD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +FLAGS : MUST [ of-0 sf-0 zf-mod af-0 pf-mod cf-mod ] +PATTERN : 0x0F 0x2F osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():r:sd MEM0:r:sd +PATTERN : 0x0F 0x2F osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():r:sd REG1=XMM_B():r:sd +} +{ +ICLASS : CVTSI2SD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x2A f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix MODRM() +OPERANDS : REG0=XMM_R():w:sd:f64 MEM0:r:d:i32 +PATTERN : 0x0F 0x2A f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix +OPERANDS : REG0=XMM_R():w:sd:f64 REG1=GPR32_B():r:d:i32 +PATTERN : 0x0F 0x2A f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix MODRM() +OPERANDS : REG0=XMM_R():w:sd:f64 MEM0:r:q:i64 +PATTERN : 0x0F 0x2A f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix +OPERANDS : REG0=XMM_R():w:sd:f64 REG1=GPR64_B():r:q:i64 +} +{ +ICLASS : CVTTSD2SI +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x2C f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:sd:f64 +PATTERN : 0x0F 0x2C f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:sd:f64 +PATTERN : 0x0F 0x2C f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:sd:f64 +PATTERN : 0x0F 0x2C f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:sd:f64 +} +{ +ICLASS : CVTSD2SI +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x2D f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:sd:f64 +PATTERN : 0x0F 0x2D f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() norexw_prefix +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:sd:f64 +PATTERN : 0x0F 0x2D f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:sd:f64 +PATTERN : 0x0F 0x2D f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() rexw_prefix +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:sd:f64 +} +{ +ICLASS : CMOVS +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst ] +PATTERN : 0x0F 0x48 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVS +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst ] +PATTERN : 0x0F 0x48 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNS +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst ] +PATTERN : 0x0F 0x49 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVNS +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst ] +PATTERN : 0x0F 0x49 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVP +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ pf-tst ] +PATTERN : 0x0F 0x4A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVP +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ pf-tst ] +PATTERN : 0x0F 0x4A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNP +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ pf-tst ] +PATTERN : 0x0F 0x4B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVNP +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ pf-tst ] +PATTERN : 0x0F 0x4B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVL +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst ] +PATTERN : 0x0F 0x4C MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVL +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst ] +PATTERN : 0x0F 0x4C MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNL +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst ] +PATTERN : 0x0F 0x4D MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVNL +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst ] +PATTERN : 0x0F 0x4D MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVLE +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +PATTERN : 0x0F 0x4E MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVLE +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +PATTERN : 0x0F 0x4E MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : CMOVNLE +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +PATTERN : 0x0F 0x4F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v +} +{ +ICLASS : CMOVNLE +CPL : 3 +CATEGORY : CMOV +EXTENSION : BASE +ISA_SET : PPRO +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +PATTERN : 0x0F 0x4F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : ADDPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x58 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x58 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : MULPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x59 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x59 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : CVTPS2PD +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +ATTRIBUTES: MXCSR +PATTERN : 0x0F 0x5A no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:pd:f64 MEM0:r:q:f32 +PATTERN : 0x0F 0x5A no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:pd:f64 REG1=XMM_B():r:q:f32 +} +{ +ICLASS : CVTDQ2PS +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5B no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:ps:f32 MEM0:r:dq:i32 +PATTERN : 0x0F 0x5B no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:ps:f32 REG1=XMM_B():r:dq:i32 +} +{ +ICLASS : SUBPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5C no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x5C no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : MINPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5D no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x5D no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : DIVPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x5E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : MAXPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5F no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x5F no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : ADDSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x58 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss +PATTERN : 0x0F 0x58 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss +} +{ +ICLASS : MULSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x59 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss +PATTERN : 0x0F 0x59 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss +} +{ +ICLASS : CVTSS2SD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5A f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:sd:f64 MEM0:r:ss:f32 +PATTERN : 0x0F 0x5A f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:sd:f64 REG1=XMM_B():r:ss:f32 +} +{ +ICLASS : CVTTPS2DQ +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5B f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:ps:f32 +PATTERN : 0x0F 0x5B f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:ps:f32 +} +{ +ICLASS : SUBSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5C f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss +PATTERN : 0x0F 0x5C f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss +} +{ +ICLASS : MINSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5D f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss +PATTERN : 0x0F 0x5D f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss +} +{ +ICLASS : DIVSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5E f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss +PATTERN : 0x0F 0x5E f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss +} +{ +ICLASS : MAXSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5F f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ss MEM0:r:ss +PATTERN : 0x0F 0x5F f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ss REG1=XMM_B():r:ss +} +{ +ICLASS : ADDPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x58 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x58 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : MULPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x59 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x59 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : CVTPD2PS +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5A osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:ps:f32 MEM0:r:pd:f64 +PATTERN : 0x0F 0x5A osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:ps:f32 REG1=XMM_B():r:pd:f64 +} +{ +ICLASS : CVTPS2DQ +CPL : 3 +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5B osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:ps:f32 +PATTERN : 0x0F 0x5B osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:ps:f32 +} +{ +ICLASS : SUBPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5C osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x5C osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : MINPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5D osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x5D osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : DIVPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x5E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x5E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : MAXPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR MXCSR +PATTERN : 0x0F 0x5F osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x5F osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : ADDSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x58 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd +PATTERN : 0x0F 0x58 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd +} +{ +ICLASS : MULSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x59 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd +PATTERN : 0x0F 0x59 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd +} +{ +ICLASS : CVTSD2SS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : CONVERT +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5A f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:ss:f32 MEM0:r:sd:f64 +PATTERN : 0x0F 0x5A f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:ss:f32 REG1=XMM_B():r:sd:f64 +} +{ +ICLASS : SUBSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5C f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd +PATTERN : 0x0F 0x5C f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd +} +{ +ICLASS : MINSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5D f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd +PATTERN : 0x0F 0x5D f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd +} +{ +ICLASS : DIVSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5E f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd +PATTERN : 0x0F 0x5E f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd +} +{ +ICLASS : MAXSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x5F f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:sd MEM0:r:sd +PATTERN : 0x0F 0x5F f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:sd REG1=XMM_B():r:sd +} +{ +ICLASS : PUNPCKHBW +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : SKIPLOW32 NOTSX +PATTERN : 0x0F 0x68 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x68 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:d +} +{ +ICLASS : PUNPCKHWD +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : SKIPLOW32 NOTSX +PATTERN : 0x0F 0x69 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x69 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:d +} +{ +ICLASS : PUNPCKHDQ +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : SKIPLOW32 NOTSX +PATTERN : 0x0F 0x6A no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x6A no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:d +} +{ +ICLASS : PACKSSDW +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : HALF_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x6B no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i32 MEM0:r:q:i32 +} +{ +ICLASS : PACKSSDW +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : HALF_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x6B no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i32 REG1=MMX_B():r:q:i32 +} +{ +ICLASS : MOVD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x6E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 norexw_prefix MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:d +PATTERN : 0x0F 0x6E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() mode64 norexw_prefix +OPERANDS : REG0=XMM_R():w:dq REG1=GPR32_B():r +PATTERN : 0x0F 0x6E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() not64 MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:d +PATTERN : 0x0F 0x6E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() not64 +OPERANDS : REG0=XMM_R():w:dq REG1=GPR32_B():r + + +PATTERN : 0x0F 0x7E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 norexw_prefix MODRM() +OPERANDS : MEM0:w:d REG0=XMM_R():r:d +PATTERN : 0x0F 0x7E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() mode64 norexw_prefix +OPERANDS : REG0=GPR32_B():w REG1=XMM_R():r:d +PATTERN : 0x0F 0x7E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() not64 MODRM() +OPERANDS : MEM0:w:d REG0=XMM_R():r:d +PATTERN : 0x0F 0x7E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() not64 +OPERANDS : REG0=GPR32_B():w REG1=XMM_R():r:d +} +{ +ICLASS : MOVD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : MMX +ISA_SET : PENTIUMMMX +ATTRIBUTES : NOTSX +PATTERN : 0x0F 0x6E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 norexw_prefix MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:d + +PATTERN : 0x0F 0x6E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 norexw_prefix +OPERANDS : REG0=MMX_R():w:q REG1=GPR32_B():r + +PATTERN : 0x0F 0x6E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:d + +PATTERN : 0x0F 0x6E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] not64 +OPERANDS : REG0=MMX_R():w:q REG1=GPR32_B():r + + +PATTERN : 0x0F 0x7E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 norexw_prefix MODRM() +OPERANDS : MEM0:w:d REG0=MMX_R():r:d + +PATTERN : 0x0F 0x7E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 norexw_prefix +OPERANDS : REG0=GPR32_B():w REG1=MMX_R():r:d + +PATTERN : 0x0F 0x7E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() +OPERANDS : MEM0:w:d REG0=MMX_R():r:d + +PATTERN : 0x0F 0x7E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] not64 +OPERANDS : REG0=GPR32_B():w REG1=MMX_R():r:d +} + + +{ +ICLASS : MOVQ +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x6E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 rexw_prefix MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:q +IFORM : MOVQ_XMMdq_MEMq_0F6E + +PATTERN : 0x0F 0x6E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() mode64 rexw_prefix +OPERANDS : REG0=XMM_R():w:dq REG1=GPR64_B():r + +PATTERN : 0x0F 0x7E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 rexw_prefix MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:q +IFORM : MOVQ_MEMq_XMMq_0F7E + +PATTERN : 0x0F 0x7E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() mode64 rexw_prefix +OPERANDS : REG0=GPR64_B():w REG1=XMM_R():r:q + +PATTERN : 0x0F 0xD6 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:q +IFORM : MOVQ_MEMq_XMMq_0FD6 + +PATTERN : 0x0F 0xD6 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_B():w:dq REG1=XMM_R():r:q +IFORM : MOVQ_XMMdq_XMMq_0FD6 + +PATTERN : 0x0F 0x7E f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:q +IFORM : MOVQ_XMMdq_MEMq_0F7E + +PATTERN : 0x0F 0x7E f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:q +IFORM : MOVQ_XMMdq_XMMq_0F7E +} + + +{ +ICLASS : MOVQ +EXCEPTIONS: mmx-nofp2 # FIXME guessing here... +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : MMX +ISA_SET : PENTIUMMMX + +PATTERN : 0x0F 0x6E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 rexw_prefix MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:q +IFORM : MOVQ_MMXq_MEMq_0F6E + +PATTERN : 0x0F 0x6E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 rexw_prefix +OPERANDS : REG0=MMX_R():w:q REG1=GPR64_B():r + +PATTERN : 0x0F 0x7E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 rexw_prefix MODRM() +OPERANDS : MEM0:w:q REG0=MMX_R():r:q +IFORM : MOVQ_MEMq_MMXq_0F7E + +PATTERN : 0x0F 0x7E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 rexw_prefix +OPERANDS : REG0=GPR64_B():w REG1=MMX_R():r:q + +PATTERN : 0x0F 0x6F no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:q +IFORM : MOVQ_MMXq_MEMq_0F6F + +PATTERN : 0x0F 0x6F no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():w:q REG1=MMX_B():r:q +IFORM : MOVQ_MMXq_MMXq_0F6F + +PATTERN : 0x0F 0x7F no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q REG0=MMX_R():r:q +IFORM : MOVQ_MEMq_MMXq_0F7F + +PATTERN : 0x0F 0x7F no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_B():w:q REG1=MMX_R():r:q +IFORM : MOVQ_MMXq_MMXq_0F7F +} + +{ +ICLASS : PUNPCKHBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : SKIPLOW64 REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x68 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x68 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PUNPCKHWD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : SKIPLOW64 REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x69 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x69 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PUNPCKHDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : SKIPLOW64 REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x6A osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x6A osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PACKSSDW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT HALF_WIDE_OUTPUT +PATTERN : 0x0F 0x6B osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +PATTERN : 0x0F 0x6B osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +} +{ +ICLASS : PUNPCKLQDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +COMMENT : mem form only uses q portion of the dq load. See SDM. +PATTERN : 0x0F 0x6C osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x6C osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : PUNPCKHQDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : SKIPLOW64 REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x6D osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x6D osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:q +} +{ +ICLASS : MOVDQU +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4M +ATTRIBUTES : +PATTERN : 0x0F 0x6F f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq + +PATTERN : 0x0F 0x6F f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +IFORM : MOVDQU_XMMdq_XMMdq_0F6F + +PATTERN : 0x0F 0x7F f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:dq + +PATTERN : 0x0F 0x7F f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_B():w:dq REG1=XMM_R():r:dq +IFORM : MOVDQU_XMMdq_XMMdq_0F7F +} +{ +ICLASS : VMREAD +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +PATTERN : 0x0F 0x78 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 MODRM() CR_WIDTH() +OPERANDS : MEM0:rw:q REG0=GPR64_R():r + +PATTERN : 0x0F 0x78 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 CR_WIDTH() +OPERANDS : REG0=GPR64_B():rw REG1=GPR64_R():r + +PATTERN : 0x0F 0x78 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() CR_WIDTH() +OPERANDS : MEM0:rw:d REG0=GPR32_R():r + +PATTERN : 0x0F 0x78 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] not64 CR_WIDTH() +OPERANDS : REG0=GPR32_B():rw REG1=GPR32_R():r +} +{ +ICLASS : VMWRITE +CPL : 3 +CATEGORY : VTX +EXTENSION : VTX +PATTERN : 0x0F 0x79 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] mode64 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR64_R():r MEM0:r:q + +PATTERN : 0x0F 0x79 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] mode64 CR_WIDTH() +OPERANDS : REG0=GPR64_R():r REG1=GPR64_B():r + +PATTERN : 0x0F 0x79 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] not64 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR32_R():r MEM0:r:d + +PATTERN : 0x0F 0x79 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] not64 CR_WIDTH() +OPERANDS : REG0=GPR32_R():r REG1=GPR32_B():r +} +{ +ICLASS : HADDPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x7C osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x7C osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : HSUBPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x7D osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:pd MEM0:r:pd +PATTERN : 0x0F 0x7D osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:pd REG1=XMM_B():r:pd +} +{ +ICLASS : MOVDQA +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_1 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x7F osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:dq + +PATTERN : 0x0F 0x7F osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_B():w:dq REG1=XMM_R():r:dq +IFORM : MOVDQA_XMMdq_XMMdq_0F7F + +PATTERN : 0x0F 0x6F osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq + +PATTERN : 0x0F 0x6F osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +IFORM : MOVDQA_XMMdq_XMMdq_0F6F +} +{ +ICLASS : HADDPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x7C f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x7C f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : HSUBPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE3 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x7D f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] IGNORE66() MODRM() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:ps +PATTERN : 0x0F 0x7D f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] IGNORE66() +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps +} +{ +ICLASS : JS +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x88 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JS +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x88 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JNS +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x89 not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JNS +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x89 mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ pf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x8A not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ pf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x8A mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JNP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ pf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x8B not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JNP +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ pf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x8B mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : JL +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x8C not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JL +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x8C mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JNL +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x8D not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JNL +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x8D mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JLE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x8E not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JLE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x8E mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + + +{ +ICLASS : JNLE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +ATTRIBUTES : SCALABLE MPX_PREFIX_ABLE +PATTERN : 0x0F 0x8F not64 BRANCH_HINT() BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP +} +{ +ICLASS : JNLE +CPL : 3 +CATEGORY : COND_BR +EXTENSION : BASE +ISA_SET : I86 +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +ATTRIBUTES: MPX_PREFIX_ABLE + +PATTERN : 0x0F 0x8F mode64 FORCE64() BRANCH_HINT() BRDISP32() +OPERANDS : RELBR:r:d REG0=rIP():rw:SUPP +} + + +{ +ICLASS : SETS +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ sf-tst ] +PATTERN : 0x0F 0x98 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x98 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNS +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ sf-tst ] +PATTERN : 0x0F 0x99 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x99 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETP +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ pf-tst ] +PATTERN : 0x0F 0x9A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x9A MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNP +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ pf-tst ] +PATTERN : 0x0F 0x9B MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x9B MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETL +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ sf-tst of-tst ] +PATTERN : 0x0F 0x9C MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x9C MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNL +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ sf-tst of-tst ] +PATTERN : 0x0F 0x9D MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x9D MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETLE +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +PATTERN : 0x0F 0x9E MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x9E MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : SETNLE +CPL : 3 +CATEGORY : SETCC +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : BYTEOP +FLAGS : READONLY [ sf-tst of-tst zf-tst ] +PATTERN : 0x0F 0x9F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:b +PATTERN : 0x0F 0x9F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR8_B():w +} +{ +ICLASS : PUSH +CPL : 3 +CATEGORY : PUSH +EXTENSION : BASE +ISA_SET : I86 +PATTERN : 0x0F 0xA8 DF64() +OPERANDS : REG0=XED_REG_GS:r:IMPL REG1=XED_REG_STACKPUSH:w:spw:SUPP +} +{ +ICLASS : POP +CPL : 3 +CATEGORY : POP +EXTENSION : BASE +ISA_SET : I86 +ATTRIBUTES: NOTSX +PATTERN : 0x0F 0xA9 DF64() +OPERANDS : REG0=XED_REG_GS:w:IMPL REG1=XED_REG_STACKPOP:r:spw:SUPP +} +{ +ICLASS : RSM +CPL : 3 +CATEGORY : SYSRET +EXTENSION : BASE +ISA_SET : I486 +ATTRIBUTES: NOTSX +FLAGS : MUST [ id-mod vip-mod vif-mod ac-mod vm-mod rf-mod nt-mod iopl-mod of-mod df-mod if-mod tf-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0xAA +OPERANDS : REG0=rIP():w:SUPP +} + +{ +ICLASS : BTS_LOCK +DISASM : bts +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xAB MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : BTS +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xAB MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : BTS +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xAB MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +} + + + +{ +ICLASS : SHRD +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I386 +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0x0F 0xAC MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rcw:v REG0=GPRv_R():r IMM0:r:b + +PATTERN : 0x0F 0xAC MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rcw REG1=GPRv_R():r IMM0:r:b +} +{ +ICLASS : SHRD +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0x0F 0xAD MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:rcw:v REG0=GPRv_R():r REG1=XED_REG_CL:r:IMPL + +PATTERN : 0x0F 0xAD MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rcw REG1=GPRv_R():r REG2=XED_REG_CL:r:IMPL +} + +{ +ICLASS : SHLD +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I386 +FLAGS : IMM1 MUST [ of-mod sf-mod zf-mod af-u pf-mod cf-mod ], IMMx MUST [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0x0F 0xA4 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:rcw:v REG0=GPRv_R():r IMM0:r:b + +PATTERN : 0x0F 0xA4 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPRv_B():rcw REG1=GPRv_R():r IMM0:r:b +} + +{ +ICLASS : SHLD +CPL : 3 +CATEGORY : SHIFT +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MAY [ of-u sf-mod zf-mod af-u pf-mod cf-mod ] +PATTERN : 0x0F 0xA5 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:rcw:v REG0=GPRv_R():r REG1=XED_REG_CL:r:IMPL + +PATTERN : 0x0F 0xA5 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rcw REG1=GPRv_R():r REG2=XED_REG_CL:r:IMPL +} + +{ +ICLASS : IMUL +CPL : 3 +CATEGORY : BINARY +EXTENSION : BASE +ISA_SET : I86 +FLAGS : MUST [ of-mod sf-u zf-u af-u pf-u cf-mod ] +PATTERN : 0x0F 0xAF MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():rw MEM0:r:v + +PATTERN : 0x0F 0xAF MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():rw REG1=GPRv_B():r +} + +{ +ICLASS : BTC_LOCK +DISASM : btc +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKED HLE_ACQ_ABLE HLE_REL_ABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] + +PATTERN : 0x0F 0xBB MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : BTC +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +ATTRIBUTES : LOCKABLE +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] + +PATTERN : 0x0F 0xBB MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix +OPERANDS : MEM0:rw:v REG0=GPRv_R():r +} +{ +ICLASS : BTC +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u af-u pf-u cf-mod ] + +PATTERN : 0x0F 0xBB MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():rw REG1=GPRv_R():r +} + + +{ +ICLASS : BSF +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-u ] +COMMENT : replaced in the HSW builds +PATTERN : 0x0F 0xBC MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBC MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : BSR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-u ] +COMMENT : replaced in the HSW builds +PATTERN : 0x0F 0xBD MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBD MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} +{ +ICLASS : MOVSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x0F 0xBE MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:b +} +{ +ICLASS : MOVSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x0F 0xBE MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w REG1=GPR8_B():r +} +{ +ICLASS : MOVSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x0F 0xBF MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:w +} +{ +ICLASS : MOVSX +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I386 +PATTERN : 0x0F 0xBF MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w REG1=GPR16_B():r +} +{ +ICLASS : BSWAP +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : BASE +ISA_SET : I486REAL +PATTERN : 0x0F 0b1100_1 SRM[rrr] +OPERANDS : REG0=GPRv_SB():rw +} +{ +ICLASS : PSUBUSB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD8 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PSUBUSB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD8 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBUSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD9 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PSUBUSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xD9 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PMINUB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDA no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PMINUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDA no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PAND +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDB no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PAND +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDB no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDUSB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDC no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PADDUSB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDC no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDUSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDD no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PADDUSW +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDD no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PMAXUB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDE no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PMAXUB +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDE no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PANDN +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDF no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PANDN +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xDF no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBUSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS : SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD8 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xD8 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBUSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS : SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xD9 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xD9 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMINUB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xDA osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xDA osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PAND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xDB osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xDB osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PADDUSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xDC osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xDC osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PADDUSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xDD osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xDD osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMAXUB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xDE osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xDE osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PANDN +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xDF osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xDF osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBSB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE8 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xE8 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xE9 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xE9 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PMINSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xEA no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xEA no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : POR +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xEB no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xEB no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDSB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xEC no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xEC no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xED no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xED no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PMAXSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xEE no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xEE no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PXOR +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xEF no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xEF no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE8 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xE8 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xE9 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xE9 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMINSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xEA osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xEA osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : POR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xEB osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xEB osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PADDSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xEC osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xEC osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PADDSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xED osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xED osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMAXSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xEE osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xEE osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PXOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xEF osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xEF osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xF8 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xF8 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xF9 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xF9 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xFA no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xFA no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBQ +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSE2 +PATTERN : 0x0F 0xFB no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xFB no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xFC no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xFC no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xFD no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xFD no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PADDD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : MMX +ISA_SET : PENTIUMMMX +PATTERN : 0x0F 0xFE no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0xFE no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSUBB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF8 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xF8 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xF9 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xF9 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xFA osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xFA osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSUBQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xFB osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xFB osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PADDB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xFC osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xFC osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PADDW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xFD osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i16 MEM0:r:dq:i16 +PATTERN : 0x0F 0xFD osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : PADDD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE2 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0xFE osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0xFE osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PHADDW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x01 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x01 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PHADDW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x01 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x01 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PHADDD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x02 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x02 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PHADDD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x02 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x02 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PHADDSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x03 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x03 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PHADDSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x03 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x03 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PHSUBW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x05 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x05 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PHSUBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x05 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x05 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PHSUBD +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x06 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x06 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PHSUBD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x06 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x06 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PHSUBSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x07 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x07 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PHSUBSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x07 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x07 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMADDUBSW +EXCEPTIONS: mmx-mem +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +ATTRIBUTES : DOUBLE_WIDE_OUTPUT NOTSX +PATTERN : 0x0F 0x38 0x04 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q:i8 MEM0:r:q:i8 +PATTERN : 0x0F 0x38 0x04 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q:i8 REG1=MMX_B():r:q:i8 +} +{ +ICLASS : PMADDUBSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT DOUBLE_WIDE_OUTPUT +PATTERN : 0x0F 0x38 0x04 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i8 MEM0:r:dq:i8 +PATTERN : 0x0F 0x38 0x04 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq:i8 REG1=XMM_B():r:dq:i8 +} +{ +ICLASS : PMULHRSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x0B no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x0B no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PMULHRSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x0B osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x0B osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSHUFB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x00 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x00 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSHUFB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x00 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x00 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSIGNB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x08 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x08 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSIGNB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x08 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x08 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSIGNW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x09 no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x09 no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSIGNW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x09 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x09 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PSIGND +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +EXCEPTIONS: mmx-mem +PATTERN : 0x0F 0x38 0x0A no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +PATTERN : 0x0F 0x38 0x0A no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSIGND +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x0A osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x0A osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PALIGNR +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x3A 0x0F no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q IMM0:r:b +PATTERN : 0x0F 0x3A 0x0F no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q IMM0:r:b +} +{ +ICLASS : PALIGNR +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x3A 0x0F osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq IMM0:r:b +PATTERN : 0x0F 0x3A 0x0F osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq IMM0:r:b +} +{ +ICLASS : PABSB +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x1C no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:q +PATTERN : 0x0F 0x38 0x1C no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():w:q REG1=MMX_B():r:q +} +{ +ICLASS : PABSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x1C osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x1C osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PABSW +EXCEPTIONS: mmx-mem +ATTRIBUTES: NOTSX +CPL : 3 +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x1D no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:q +PATTERN : 0x0F 0x38 0x1D no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():w:q REG1=MMX_B():r:q +} +{ +ICLASS : PABSW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x1D osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x1D osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PABSD +EXCEPTIONS: mmx-mem +CPL : 3 +ATTRIBUTES : simd_scalar NOTSX +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x1E no_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=MMX_R():w:q MEM0:r:q +} +{ +ICLASS : PABSD +CPL : 3 +ATTRIBUTES : simd_scalar NOTSX +CATEGORY : MMX +EXTENSION : SSSE3 +PATTERN : 0x0F 0x38 0x1E no_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=MMX_R():w:q REG1=MMX_B():r:q +} +{ +ICLASS : PABSD +CPL : 3 +ATTRIBUTES : simd_scalar REQUIRES_ALIGNMENT +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +PATTERN : 0x0F 0x38 0x1E osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +} +{ +ICLASS : PABSD +CPL : 3 +ATTRIBUTES : simd_scalar +CATEGORY : SSE +EXTENSION : SSSE3 +EXCEPTIONS: SSE_TYPE_4 +PATTERN : 0x0F 0x38 0x1E osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +} + +#################################################################################### +{ +ICLASS : POPCNT +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : POPCNT +ATTRIBUTES: IGNORES_OSFXSR +# 2009-02-20: not using IGNORE66 on this because we need the 66 prefix +# to get to the 16b form 32b and 64b modes. +FLAGS : MUST [ cf-0 zf-mod of-0 af-0 pf-0 sf-0 ] +PATTERN : 0x0F 0xB8 f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w:v MEM0:r:v +PATTERN : 0x0F 0xB8 f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w:v REG1=GPRv_B():r:v +} +#################################################################################### +{ +ICLASS : PCMPGTQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : SSE42 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x37 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x37 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +#################################################################################### +{ +ICLASS : CRC32 +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : SSE42 +ATTRIBUTES : IGNORES_OSFXSR +# 2009-02-20: not using IGNORE66 on this because we need the 66 prefix +# to get to the 16b form 32b and 64b modes. + +COMMENT: The dest min size is 32b, even for EOSZ 16b. + +# The byte-readers + +PATTERN : 0x0F 0x38 0xF0 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRy_R():rw:y MEM0:r:b +PATTERN : 0x0F 0x38 0xF0 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRy_R():rw:y REG1=GPR8_B():r:b + + +# The scalable readers + +PATTERN : 0x0F 0x38 0xF1 f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRy_R():rw:y MEM0:r:v +PATTERN : 0x0F 0x38 0xF1 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRy_R():rw:y REG1=GPRv_B():r:v + +} + + + +{ +ICLASS : BLENDPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x3A 0x0D osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : 0x0F 0x3A 0x0D osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_B():r:dq:f64 IMM0:r:b +} +{ +ICLASS : BLENDPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x3A 0x0C osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : 0x0F 0x3A 0x0C osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_B():r:dq:f32 IMM0:r:b +} +#######################################################################33 +{ +ICLASS : BLENDVPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x15 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 MEM0:r:dq:f64 REG1=XED_REG_XMM0:r:SUPP:dq:u64 + +PATTERN : 0x0F 0x38 0x15 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_B():r:dq:f64 REG2=XED_REG_XMM0:r:SUPP:dq:u64 +} + +{ +ICLASS : BLENDVPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x14 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 MEM0:r:dq:f32 REG1=XED_REG_XMM0:r:SUPP:dq:u32 + +PATTERN : 0x0F 0x38 0x14 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_B():r:dq:f32 REG2=XED_REG_XMM0:r:SUPP:dq:u32 +} +#################################################################################### +{ +ICLASS : PCMPEQQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x29 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq + +PATTERN : 0x0F 0x38 0x29 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +#################################################################################### +{ +ICLASS : DPPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_2D +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x3A 0x41 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : 0x0F 0x3A 0x41 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_B():r:dq:f64 IMM0:r:b +} +{ +ICLASS : DPPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_2D +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x3A 0x40 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : 0x0F 0x3A 0x40 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_B():r:dq:f32 IMM0:r:b +} +#################################################################################### +{ +ICLASS : MOVNTDQA +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_1 +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : 0x0F 0x38 0x2A osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +} +#################################################################################### +{ +ICLASS : EXTRACTPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x17 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:d REG0=XMM_R():r:ps IMM0:r:b + +PATTERN : 0x0F 0x3A 0x17 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:dq IMM0:r:b +} +#################################################################################### +{ +ICLASS : INSERTPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x21 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:ps MEM0:r:d IMM0:r:b + +PATTERN : 0x0F 0x3A 0x21 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:ps REG1=XMM_B():r:ps IMM0:r:b +} +############################################################################ +{ +ICLASS : MPSADBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT DOUBLE_WIDE_OUTPUT +PATTERN : 0x0F 0x3A 0x42 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:u8 MEM0:r:dq:u8 IMM0:r:b + +PATTERN : 0x0F 0x3A 0x42 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq:u8 REG1=XMM_B():r:dq:u8 IMM0:r:b +} +############################################################################ +{ +ICLASS : PACKUSDW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT HALF_WIDE_OUTPUT +PATTERN : 0x0F 0x38 0x2B osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 + +PATTERN : 0x0F 0x38 0x2B osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +} +############################################################################ +{ +ICLASS : PBLENDW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x3A 0x0E osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq IMM0:r:b + +PATTERN : 0x0F 0x3A 0x0E osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq IMM0:r:b +} +############################################################################ +{ +ICLASS : PBLENDVB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x10 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq REG1=XED_REG_XMM0:r:dq:SUPP + +PATTERN : 0x0F 0x38 0x10 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq REG2=XED_REG_XMM0:r:dq:SUPP +} +############################################################################ +{ +ICLASS : PEXTRB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x14 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:b REG0=XMM_R():r:dq IMM0:r:b +# FIXME: 2007-06-11 Might want to make a new 64/32 reg accessor. what happens in 64b??? +PATTERN : 0x0F 0x3A 0x14 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:dq IMM0:r:b +} +############################################################################ +{ +ICLASS : PEXTRW_SSE4 +DISASM_INTEL: pextrw +DISASM_ATTSV: pextrw +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +# this one aliases with the SSE2 version so we made a new name + +PATTERN : 0x0F 0x3A 0x15 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:w REG0=XMM_R():r:dq IMM0:r:b +IFORM : PEXTRW_SSE4_MEMw_XMMdq_IMMb + +# this one aliases with the SSE2 version so we made a new name +PATTERN : 0x0F 0x3A 0x15 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w REG1=XMM_R():r:dq IMM0:r:b +IFORM : PEXTRW_SSE4_GPR32_XMMdq_IMMb +} + +############################################################################ +{ +ICLASS : PEXTRQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x16 osz_refining_prefix REFINING66() rexw_prefix mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:q REG0=XMM_R():r:dq IMM0:r:b +PATTERN : 0x0F 0x3A 0x16 osz_refining_prefix REFINING66() rexw_prefix mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR64_B():w:q REG1=XMM_R():r:dq IMM0:r:b +} +############################################################################ +{ +ICLASS : PEXTRD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x16 osz_refining_prefix REFINING66() norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:d REG0=XMM_R():r:dq IMM0:r:b +# FIXME: 2007-06-11 Might want to make a new 64/32 reg accessor. what happens in 64b??? +PATTERN : 0x0F 0x3A 0x16 osz_refining_prefix REFINING66() norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:dq IMM0:r:b +} +############################################################################ +{ +ICLASS : PINSRB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x20 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:b IMM0:r:b + +PATTERN : 0x0F 0x3A 0x20 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=GPR32_B():r:d IMM0:r:b +} +############################################################################ +{ +ICLASS : PINSRD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x22 osz_refining_prefix REFINING66() norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:d IMM0:r:b + +PATTERN : 0x0F 0x3A 0x22 osz_refining_prefix REFINING66() norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=GPR32_B():r:d IMM0:r:b +} +############################################################################ +{ +ICLASS : PINSRQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x3A 0x22 osz_refining_prefix REFINING66() rexw_prefix mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:q IMM0:r:b + +PATTERN : 0x0F 0x3A 0x22 osz_refining_prefix REFINING66() rexw_prefix mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=GPR64_B():r:q IMM0:r:b +} +############################################################################ +{ +ICLASS : ROUNDPD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x3A 0x09 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:pd MEM0:r:pd IMM0:r:b +PATTERN : 0x0F 0x3A 0x09 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:pd REG1=XMM_B():r:pd IMM0:r:b +} +############################################################################ +{ +ICLASS : ROUNDPS +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_2 +ATTRIBUTES : REQUIRES_ALIGNMENT MXCSR +PATTERN : 0x0F 0x3A 0x08 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:ps MEM0:r:ps IMM0:r:b +PATTERN : 0x0F 0x3A 0x08 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:ps REG1=XMM_B():r:ps IMM0:r:b +} +############################################################################ +{ +ICLASS : ROUNDSD +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x3A 0x0B osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:q MEM0:r:q IMM0:r:b +PATTERN : 0x0F 0x3A 0x0B osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:q REG1=XMM_B():r:q IMM0:r:b +} +############################################################################ +{ +ICLASS : ROUNDSS +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_3 +PATTERN : 0x0F 0x3A 0x0A osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:d MEM0:r:d IMM0:r:b +PATTERN : 0x0F 0x3A 0x0A osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:d REG1=XMM_B():r:d IMM0:r:b +} +############################################################################ +{ +ICLASS : PTEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +FLAGS : MUST [ cf-mod zf-mod of-0 af-0 pf-0 sf-0 ] +PATTERN : 0x0F 0x38 0x17 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x17 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq +} +############################################################################ +{ +ICLASS : PHMINPOSUW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x41 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x41 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +} + + +{ +ICLASS : PMAXSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x3C osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x3C osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMAXSD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x3D osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x3D osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMAXUD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x3F osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x3F osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMAXUW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x3E osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x3E osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + +{ +ICLASS : PMINSB +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x38 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x38 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMINSD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x39 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x39 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMINUD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x3B osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x3B osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMINUW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x3A osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x3A osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + +{ +ICLASS : PMULLD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x40 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x40 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} +{ +ICLASS : PMULDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0x28 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +PATTERN : 0x0F 0x38 0x28 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +} + + + + + +{ +ICLASS : PMOVSXBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x20 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 MEM0:r:q:i8 +PATTERN : 0x0F 0x38 0x20 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_B():r:q:i8 +} +{ +ICLASS : PMOVSXBD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x21 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:d:i8 +PATTERN : 0x0F 0x38 0x21 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:d:i8 +} +{ +ICLASS : PMOVSXBQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x22 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 MEM0:r:w:i8 +PATTERN : 0x0F 0x38 0x22 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:w:i8 +} + +{ +ICLASS : PMOVSXWD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x23 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:q:i16 +PATTERN : 0x0F 0x38 0x23 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:q:i16 +} +{ +ICLASS : PMOVSXWQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x24 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 MEM0:r:d:i16 +PATTERN : 0x0F 0x38 0x24 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:d:i16 +} +{ +ICLASS : PMOVSXDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x25 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 MEM0:r:q:i32 +PATTERN : 0x0F 0x38 0x25 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:q:i32 +} + +{ +ICLASS : PMOVZXBW +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x30 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:q:u8 +PATTERN : 0x0F 0x38 0x30 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:q:u8 +} +{ +ICLASS : PMOVZXBD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x31 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:d:u8 +PATTERN : 0x0F 0x38 0x31 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:d:u8 +} +{ +ICLASS : PMOVZXBQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x32 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:w:u8 +PATTERN : 0x0F 0x38 0x32 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:w:u8 +} + +{ +ICLASS : PMOVZXWD +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x33 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:q:u16 +PATTERN : 0x0F 0x38 0x33 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:q:u16 +} +{ +ICLASS : PMOVZXWQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x34 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:d:u16 +PATTERN : 0x0F 0x38 0x34 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:d:u16 +} +{ +ICLASS : PMOVZXDQ +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +EXCEPTIONS: SSE_TYPE_5 +ATTRIBUTES : +PATTERN : 0x0F 0x38 0x35 osz_refining_prefix REFINING66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:q:u32 +PATTERN : 0x0F 0x38 0x35 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:q:u32 +} + + + + + + + +{ +ICLASS : PCMPESTRI +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : SSE42 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] + +PATTERN : 0x0F 0x3A 0x61 osz_refining_prefix IMMUNE66() norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_EDX:r:SUPP REG3=XED_REG_ECX:w:SUPP + +PATTERN : 0x0F 0x3A 0x61 osz_refining_prefix IMMUNE66() norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_ECX:w:SUPP + +PATTERN : 0x0F 0x3A 0x61 osz_refining_prefix IMMUNE66() rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_RAX:r:SUPP REG2=XED_REG_RDX:r:SUPP REG3=XED_REG_RCX:w:SUPP + +PATTERN : 0x0F 0x3A 0x61 osz_refining_prefix IMMUNE66() rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_RAX:r:SUPP REG3=XED_REG_RDX:r:SUPP REG4=XED_REG_RCX:w:SUPP +} +{ +ICLASS : PCMPISTRI +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : SSE42 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] + +PATTERN : 0x0F 0x3A 0x63 osz_refining_prefix IMMUNE66() norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_ECX:w:SUPP + +PATTERN : 0x0F 0x3A 0x63 osz_refining_prefix IMMUNE66() norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_ECX:w:SUPP + +PATTERN : 0x0F 0x3A 0x63 osz_refining_prefix IMMUNE66() rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_RCX:w:SUPP + +PATTERN : 0x0F 0x3A 0x63 osz_refining_prefix IMMUNE66() rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_RCX:w:SUPP +} + +{ +ICLASS : PCMPESTRM +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : SSE42 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] + +PATTERN : 0x0F 0x3A 0x60 osz_refining_prefix IMMUNE66() norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_EDX:r:SUPP REG3=XED_REG_XMM0:w:dq:SUPP + +PATTERN : 0x0F 0x3A 0x60 osz_refining_prefix IMMUNE66() norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_XMM0:w:dq:SUPP + +PATTERN : 0x0F 0x3A 0x60 osz_refining_prefix IMMUNE66() rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_RAX:r:SUPP REG2=XED_REG_RDX:r:SUPP REG3=XED_REG_XMM0:w:dq:SUPP + +PATTERN : 0x0F 0x3A 0x60 osz_refining_prefix IMMUNE66() rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_RAX:r:SUPP REG3=XED_REG_RDX:r:SUPP REG4=XED_REG_XMM0:w:dq:SUPP + +} +{ +ICLASS : PCMPISTRM +CPL : 3 +CATEGORY : SSE +EXTENSION : SSE4 +ISA_SET : SSE42 +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES: +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] +PATTERN : 0x0F 0x3A 0x62 osz_refining_prefix IMMUNE66() MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_XMM0:w:dq:SUPP + +PATTERN : 0x0F 0x3A 0x62 osz_refining_prefix IMMUNE66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_XMM0:w:dq:SUPP +} +#################################################################################### +{ +ICLASS : XGETBV +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b010] RM[0b000] no_refining_prefix +OPERANDS : REG0=XED_REG_ECX:r:SUPP REG1=XED_REG_EDX:w:SUPP REG2=XED_REG_EAX:w:SUPP REG3=XED_REG_XCR0:r:SUPP +} + +{ +ICLASS : XSETBV +CPL : 0 +CATEGORY : XSAVE +EXTENSION : XSAVE +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b010] RM[0b001] no_refining_prefix +OPERANDS : REG0=XED_REG_ECX:r:SUPP REG1=XED_REG_EDX:r:SUPP REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_XCR0:w:SUPP +} + + +{ +ICLASS : XSAVE +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVE +COMMENT : variable length store +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b100] RM[nnn] no_refining_prefix norexw_prefix MODRM() +#FIXME 2007-06-25 need a meaningful width code for XSAVE/XRSTOR +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} +{ +ICLASS : XRSTOR +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVE +COMMENT : variable length load and conditianal reg write +ATTRIBUTES : xmm_state_cw REQUIRES_ALIGNMENT x87_mmx_state_cw NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b101] RM[nnn] no_refining_prefix norexw_prefix MODRM() +#FIXME 2007-06-25 need a meaningful width code for XSAVE/XRSTOR +OPERANDS : MEM0:r:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + +{ +ICLASS : XSAVE64 +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVE +COMMENT : variable length store +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b100] RM[nnn] no_refining_prefix rexw_prefix MODRM() +#FIXME 2007-06-25 need a meaningful width code for XSAVE/XRSTOR +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + +{ +ICLASS : XRSTOR64 +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVE +COMMENT : variable length load and conditianal reg write +ATTRIBUTES : xmm_state_cw REQUIRES_ALIGNMENT x87_mmx_state_cw NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b101] RM[nnn] no_refining_prefix rexw_prefix MODRM() +#FIXME 2007-06-25 need a meaningful width code for XSAVE/XRSTOR +OPERANDS : MEM0:r:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + + + + +#################################################################################### + +{ +ICLASS : MOVBE +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : MOVBE +COMMENT : Intro on Atom Silverthorne. Intercepted by Haswell. +# +# must allow 66 prefix. So "not_refning" gives us REFINING=0 which suffices to exclude F2/F3 prefixes. +# +PATTERN : 0x0F 0x38 0xF0 not_refining MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:v +PATTERN : 0x0F 0x38 0xF1 not_refining MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:v REG0=GPRv_R():r +} + + +{ +ICLASS : GETSEC +CPL : 3 +CATEGORY : SYSTEM +ATTRIBUTES: PROTECTED_MODE NOTSX +EXTENSION : SMX +PATTERN : 0x0F 0x37 +OPERANDS : REG0=XED_REG_EAX:rcw:SUPP REG1=XED_REG_EBX:r:SUPP +} + + +#################################################################################### +{ +ICLASS : AESKEYGENASSIST +CPL : 3 +CATEGORY : AES +EXTENSION : AES +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x3A 0xDF osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq IMM0:r:b +PATTERN : 0x0F 0x3A 0xDF osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq IMM0:r:b +} +{ +ICLASS : AESENC +CPL : 3 +CATEGORY : AES +EXTENSION : AES +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0xDC osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +PATTERN : 0x0F 0x38 0xDC osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : AESENCLAST +CPL : 3 +CATEGORY : AES +EXTENSION : AES +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0xDD osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +PATTERN : 0x0F 0x38 0xDD osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : AESDEC +CPL : 3 +CATEGORY : AES +EXTENSION : AES +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0xDE osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +PATTERN : 0x0F 0x38 0xDE osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : AESDECLAST +CPL : 3 +CATEGORY : AES +EXTENSION : AES +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0xDF osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq +PATTERN : 0x0F 0x38 0xDF osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq +} +{ +ICLASS : AESIMC +CPL : 3 +CATEGORY : AES +EXTENSION : AES +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x38 0xDB osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +PATTERN : 0x0F 0x38 0xDB osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +} +#################################################################################### +{ +ICLASS : PCLMULQDQ +CPL : 3 +CATEGORY : PCLMULQDQ +EXTENSION : PCLMULQDQ +EXCEPTIONS: SSE_TYPE_4 +ATTRIBUTES : REQUIRES_ALIGNMENT +PATTERN : 0x0F 0x3A 0x44 osz_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] REFINING66() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq REG1=XMM_B():r:dq IMM0:r:b +PATTERN : 0x0F 0x3A 0x44 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() MODRM() UIMM8() +OPERANDS : REG0=XMM_R():rw:dq MEM0:r:dq IMM0:r:b +} + + +####################################################################### +{ +ICLASS : INVEPT +CPL : 0 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x38 0x80 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR64_R():r MEM0:r:dq +PATTERN : 0x0F 0x38 0x80 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode32 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR32_R():r MEM0:r:dq +COMMENT : SDM rev 27 +} +{ +ICLASS : INVVPID +CPL : 0 +CATEGORY : VTX +EXTENSION : VTX +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x38 0x81 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR64_R():r MEM0:r:dq +PATTERN : 0x0F 0x38 0x81 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode32 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR32_R():r MEM0:r:dq +COMMENT : SDM rev 27 +} + + + + + + +###FILE: ../xed/datafiles/xed-amd-prefetch.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: +{ +ICLASS : NOP +UNAME : NOP0F0D_reg +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +ISA_SET : PREFETCH_NOP +COMMENT : AMD 3DNOW prefetches that do not touch memory. This is the reg/reg form. + +PATTERN : 0x0F 0x0D MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F0D +} + +# The rest are all mem forms (MODRM.MOD!=3) + +{ +ICLASS : PREFETCH_EXCLUSIVE +CPL : 3 +ATTRIBUTES: PREFETCH +CATEGORY : PREFETCH +EXTENSION : 3DNOW +ISA_SET : PREFETCH_NOP +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +} +{ +ICLASS : PREFETCHW +CPL : 3 +ATTRIBUTES: PREFETCH +CATEGORY : PREFETCH +EXTENSION : 3DNOW +COMMENT: : was PREFETCH_MODIFIED, prefetch on >=broadwell and >=silvermont +ISA_SET : PREFETCH_NOP +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCHW_0F0Dr1 +} +{ +ICLASS : PREFETCH_RESERVED +CPL : 3 +ATTRIBUTES: PREFETCH +CATEGORY : PREFETCH +EXTENSION : 3DNOW +ISA_SET : PREFETCH_NOP +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCH_RESERVED_0F0Dr2 +UNAME : PREFETCH_RESERVED_0F0Dr2 +} +{ +ICLASS : PREFETCHW +CPL : 3 +ATTRIBUTES: PREFETCH +CATEGORY : PREFETCH +EXTENSION : 3DNOW +COMMENT: : was PREFETCH_MODIFIED +ISA_SET : PREFETCH_NOP +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCHW_0F0Dr3 +} +{ +ICLASS : PREFETCH_RESERVED +CPL : 3 +ATTRIBUTES: PREFETCH +CATEGORY : PREFETCH +EXTENSION : 3DNOW +ISA_SET : PREFETCH_NOP +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCH_RESERVED_0F0Dr4 + +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCH_RESERVED_0F0Dr5 + +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCH_RESERVED_0F0Dr6 + +PATTERN : 0x0F 0x0D MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS : MEM0:r:mprefetch +IFORM : PREFETCH_RESERVED_0F0Dr7 +} + + + +###FILE: ../xed/datafiles/xed-nops.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +#################################################################### +# SPECIFIC WIDE NOPS RECOMMENDED BY THE PROGRAMMERS REFERENCE MANUAL +#################################################################### +#{ +#ICLASS : NOP1 +#CPL : 3 +#CATEGORY : WIDENOP +#EXTENSION : BASE +#PATTERN : 90 +#OPERANDS : +#} +{ +ICLASS : NOP2 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x66 0x90 +OPERANDS : +} +{ +ICLASS : NOP3 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x0F 0x1F 0x00 +OPERANDS : +} +{ +ICLASS : NOP4 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x0F 0x1F 0x40 0x00 +OPERANDS : +} +{ +ICLASS : NOP5 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x0F 0x1F 0x44 0x00 0x00 +OPERANDS : +} +{ +ICLASS : NOP6 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x66 0x0F 0x1F 0x44 0x00 0x00 +OPERANDS : +} +{ +ICLASS : NOP7 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x0F 0x1F 0x80 0x00 0x00 0x00 0x00 +OPERANDS : +} +{ +ICLASS : NOP8 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x0F 0x1F 0x84 0x00 0x00 0x00 0x00 0x00 +OPERANDS : +} +{ +ICLASS : NOP9 +CPL : 3 +CATEGORY : WIDENOP +EXTENSION : BASE +PATTERN : 0x66 0x0F 0x1F 0x84 0x00 0x00 0x00 0x00 0x00 +OPERANDS : +} + + +###FILE: ../xed/datafiles/xed-amd-3dnow.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: +{ +ICLASS : FEMMS +CPL : 3 +CATEGORY : MMX +EXTENSION : 3DNOW +ATTRIBUTES : x87_mmx_state_w +PATTERN : 0x0F 0x0E +OPERANDS : +} +{ +ICLASS : PI2FW +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x0C +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PI2FW +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x0C +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PI2FD +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x0D +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PI2FD +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x0D +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PF2IW +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x1C +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PF2IW +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x1C +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PF2ID +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x1D +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PF2ID +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x1D +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFNACC +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x8A +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFNACC +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x8A +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFPNACC +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x8E +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFPNACC +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x8E +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFCMPGE +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x90 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFCMPGE +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x90 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFMIN +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x94 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFMIN +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x94 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFRCP +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x96 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFRCP +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x96 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFSQRT +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x97 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFSQRT +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x97 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFSUB +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x9A +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFSUB +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x9A +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFADD +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0x9E +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFADD +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0x9E +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFCMPGT +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xA0 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFCMPGT +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xA0 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFMAX +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xA4 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFMAX +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xA4 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFCPIT1 +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xA6 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFCPIT1 +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xA6 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFRSQIT1 +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xA7 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFRSQIT1 +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xA7 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFSUBR +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xAA +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFSUBR +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xAA +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFACC +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xAE +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFACC +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xAE +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFCMPEQ +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xB0 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFCMPEQ +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xB0 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFMUL +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xB4 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFMUL +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xB4 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PFRCPIT2 +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xB6 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PFRCPIT2 +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xB6 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PMULHRW +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xB7 +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PMULHRW +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xB7 +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PSWAPD +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xBB +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PSWAPD +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xBB +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} +{ +ICLASS : PAVGUSB +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() 0xBF +OPERANDS : REG0=MMX_R():rw:q MEM0:r:q +} +{ +ICLASS : PAVGUSB +CPL : 3 +CATEGORY : 3DNOW +EXTENSION : 3DNOW +PATTERN : 0x0F 0x0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] 0xBF +OPERANDS : REG0=MMX_R():rw:q REG1=MMX_B():r:q +} + + +###FILE: ../xed/datafiles/xed-amd-base.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# file: xed-amd-base.txt + +INSTRUCTIONS():: +# SYSCALL and SYSRET are supported in 32b mode only on AMD chips + +{ +ICLASS : SYSCALL_AMD +DISASM : syscall +CPL : 3 +CATEGORY : SYSCALL +EXTENSION : BASE +ISA_SET : AMD +FLAGS : MUST [ id-mod vip-mod vif-mod ac-mod vm-0 rf-0 nt-mod iopl-mod of-mod df-mod if-mod tf-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0x05 not64 IGNORE66() +OPERANDS : REG0=rIP():w:SUPP +} + + +{ +ICLASS : SYSRET_AMD +DISASM : sysret +CPL : 0 +CATEGORY : SYSRET +ATTRIBUTES: PROTECTED_MODE RING0 +EXTENSION : BASE +ISA_SET : AMD +FLAGS : MUST [ id-mod vip-mod vif-mod ac-mod rf-0 nt-mod iopl-mod of-mod df-mod if-mod tf-mod sf-mod zf-mod af-mod pf-mod cf-mod ] +PATTERN : 0x0F 0x07 not64 +OPERANDS : REG0=XED_REG_EIP:w:SUPP +} + + +###FILE: ../xed/datafiles/xed-amd-svm.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: +{ +ICLASS : VMRUN +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b000] +OPERANDS : REG0=OrAX():r:IMPL +} +{ +ICLASS : VMMCALL +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b001] +OPERANDS : +} +{ +ICLASS : VMLOAD +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b010] +OPERANDS : REG0=OrAX():r:IMPL +} +{ +ICLASS : VMSAVE +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b011] +OPERANDS : +} +{ +ICLASS : STGI +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b100] +OPERANDS : +} +{ +ICLASS : CLGI +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b101] +OPERANDS : +} +{ +ICLASS : SKINIT +CPL : 3 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b110] +OPERANDS : REG0=XED_REG_EAX:r:IMPL +} +{ +ICLASS : INVLPGA +CPL : 0 +CATEGORY : SYSTEM +EXTENSION : SVM +ATTRIBUTES: PROTECTED_MODE +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b011] RM[0b111] +OPERANDS : REG0=OrAX():r:IMPL REG1=XED_REG_ECX:r:IMPL +} + + +###FILE: ../xed/datafiles/xed-amd-sse4a.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# EXTRQ xmm:w:q, imm8, imm8 66 0F 78 /0 ib ib +# EXTRQ xmm:w:q, xmm:r:w 66 0F 79 /r + +{ +ICLASS : EXTRQ +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : SSE4a +ATTRIBUTES : ATT_OPERAND_ORDER_EXCEPTION +PATTERN : 0x0F 0x78 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[0b000] RM[nnn] UIMM8() UIMM8_1() +OPERANDS : REG0=XMM_R():w:q IMM0:r:b IMM1:r:b +PATTERN : 0x0F 0x79 osz_refining_prefix REFINING66() MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:q REG1=XMM_B():r:dq +} + +# INSERTQ xmm:w:q xmm:r:q, imm8, imm8 f2 0f 78 /r ib ib +# INSERTQ xmm:w:q xmm:r:dq, f2 0f 79 /r + +{ +ICLASS : INSERTQ +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : SSE4a +ATTRIBUTES : ATT_OPERAND_ORDER_EXCEPTION +PATTERN : 0x0F 0x78 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() UIMM8_1() +OPERANDS : REG0=XMM_R():w:q REG1=XMM_B():r:q IMM0:r:b IMM1:r:b +PATTERN : 0x0F 0x79 f2_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:q REG1=XMM_B():r:dq +} + + +# MOVNTSD mem64:w:q, xmm:r:q f2 0f 2b /r +# MOVNTSS mem32:w:d, xmm:r:d f3 0f 2b /r + +{ +ICLASS : MOVNTSD +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE4a +PATTERN : 0x0F 0x2B f2_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:q +} +{ +ICLASS : MOVNTSS +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : SSE4a +PATTERN : 0x0F 0x2B f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:d REG0=XMM_R():r:d +} + +######################################################################################################### +# These next one is not part of SSE4a or SSE5. + +# LZCNT reg16, reg/mem16 F30FBD /r +# LZCNT reg32, reg/mem32 F30FBD /r +# LZCNT reg64, reg/mem64 F30FBD /r + +{ +ICLASS : LZCNT +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : AMD +FLAGS : MUST [ cf-mod zf-mod of-u af-u pf-u sf-u ] +PATTERN : 0x0F 0xBD f3_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w:v MEM0:r:v +PATTERN : 0x0F 0xBD f3_refining_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w:v REG1=GPRv_B():r:v +} + + +{ +ICLASS : BSR +VERSION : 1 +COMMENT : AMD reused 0FBD for LZCNT and made BSR not have a refining prefix. This version replaces the normal version of BSR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-u ] +PATTERN : 0x0F 0xBD not_refining_f3 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBD not_refining_f3 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} + + +###FILE: ../xed/datafiles/xed-amd-clzero.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: +{ +ICLASS : CLZERO +CPL : 3 +CATEGORY : CLZERO +EXTENSION : CLZERO +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b111] RM[0b100] +OPERANDS : REG0=OrAX():r:IMPL +COMMENT : AMD "Zen" ~2016 (expected) CPU +} + + +###FILE: ../xed/datafiles/amdxop/amd-xop-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +XOP_INSTRUCTIONS():: +{ +ICLASS: VPMACSSWW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x85 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i16 + +PATTERN: XOPV 0x85 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i16 +} + +{ +ICLASS: VPMACSSWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x86 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i32 + +PATTERN: XOPV 0x86 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i32 +} + +{ +ICLASS: VPMACSSDQL +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x87 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 REG2=XMM_SE():r:dq:i64 + +PATTERN: XOPV 0x87 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 REG3=XMM_SE():r:dq:i64 +} + +{ +ICLASS: VPMACSWW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x95 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i16 + +PATTERN: XOPV 0x95 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i16 +} + +{ +ICLASS: VPMACSWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x96 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i32 + +PATTERN: XOPV 0x96 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i32 +} + +{ +ICLASS: VPMACSDQL +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x97 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 REG2=XMM_SE():r:dq:i64 + +PATTERN: XOPV 0x97 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 REG3=XMM_SE():r:dq:i64 +} + +{ +ICLASS: VPCMOV +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xA2 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i1 REG1=XMM_N():r:dq:i1 MEM0:r:dq:i1 REG2=XMM_SE():r:dq:i1 + +PATTERN: XOPV 0xA2 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i1 REG1=XMM_N():r:dq:i1 REG2=XMM_B():r:dq:i1 REG3=XMM_SE():r:dq:i1 + +PATTERN: XOPV 0xA2 VNP W1 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i1 REG1=XMM_N():r:dq:i1 REG2=XMM_SE():r:dq:i1 MEM0:r:dq:i1 + +PATTERN: XOPV 0xA2 VNP W1 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i1 REG1=XMM_N():r:dq:i1 REG2=XMM_SE():r:dq:i1 REG3=XMM_B():r:dq:i1 + +PATTERN: XOPV 0xA2 VNP W0 VL256 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:i1 REG1=YMM_N():r:qq:i1 MEM0:r:qq:i1 REG2=YMM_SE():r:qq:i1 + +PATTERN: XOPV 0xA2 VNP W0 VL256 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:i1 REG1=YMM_N():r:qq:i1 REG2=YMM_B():r:qq:i1 REG3=YMM_SE():r:qq:i1 + +PATTERN: XOPV 0xA2 VNP W1 VL256 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:i1 REG1=YMM_N():r:qq:i1 REG2=YMM_SE():r:qq:i1 MEM0:r:qq:i1 + +PATTERN: XOPV 0xA2 VNP W1 VL256 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:i1 REG1=YMM_N():r:qq:i1 REG2=YMM_SE():r:qq:i1 REG3=YMM_B():r:qq:i1 +} + +{ +ICLASS: VPPERM +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xA3 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i16 + +PATTERN: XOPV 0xA3 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i16 + +PATTERN: XOPV 0xA3 VNP W1 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_SE():r:dq:i16 MEM0:r:dq:i16 + +PATTERN: XOPV 0xA3 VNP W1 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_SE():r:dq:i16 REG3=XMM_B():r:dq:i16 +} + +{ +ICLASS: VPMADCSSWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xA6 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i32 + +PATTERN: XOPV 0xA6 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i32 +} + +{ +ICLASS: VPMADCSWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xB6 VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 REG2=XMM_SE():r:dq:i32 + +PATTERN: XOPV 0xB6 VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 REG3=XMM_SE():r:dq:i32 +} + +{ +ICLASS: VPROTB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC0 VNP W0 VL128 NOVSR XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u8 MEM0:r:dq:u8 IMM0:r:b:u8 + +PATTERN: XOPV 0xC0 VNP W0 VL128 NOVSR XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_B():r:dq:u8 IMM0:r:b:u8 +} + +{ +ICLASS: VPROTW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC1 VNP W0 VL128 NOVSR XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u16 MEM0:r:dq:u16 IMM0:r:b:u16 + +PATTERN: XOPV 0xC1 VNP W0 VL128 NOVSR XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u16 IMM0:r:b:u16 +} + +{ +ICLASS: VPROTD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC2 VNP W0 VL128 NOVSR XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u32 MEM0:r:dq:u32 IMM0:r:b:u32 + +PATTERN: XOPV 0xC2 VNP W0 VL128 NOVSR XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:u32 IMM0:r:b:u32 +} + +{ +ICLASS: VPROTQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC3 VNP W0 VL128 NOVSR XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u64 MEM0:r:dq:u64 IMM0:r:b:u64 + +PATTERN: XOPV 0xC3 VNP W0 VL128 NOVSR XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:dq:u64 IMM0:r:b:u64 +} + +{ +ICLASS: VPMACSSDD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x8E VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 REG2=XMM_SE():r:dq:i32 + +PATTERN: XOPV 0x8E VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 REG3=XMM_SE():r:dq:i32 +} + +{ +ICLASS: VPMACSSDQH +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x8F VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 REG2=XMM_SE():r:dq:i64 + +PATTERN: XOPV 0x8F VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 REG3=XMM_SE():r:dq:i64 +} + +{ +ICLASS: VPMACSDD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x9E VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 REG2=XMM_SE():r:dq:i32 + +PATTERN: XOPV 0x9E VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 REG3=XMM_SE():r:dq:i32 +} + +{ +ICLASS: VPMACSDQH +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x9F VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 REG2=XMM_SE():r:dq:i64 + +PATTERN: XOPV 0x9F VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 REG3=XMM_SE():r:dq:i64 +} + +{ +ICLASS: VPCOMB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xCC VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 IMM0:r:b:i8 + +PATTERN: XOPV 0xCC VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 IMM0:r:b:i8 +} + +{ +ICLASS: VPCOMW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xCD VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 IMM0:r:b:i16 + +PATTERN: XOPV 0xCD VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 IMM0:r:b:i16 +} + +{ +ICLASS: VPCOMD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xCE VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 IMM0:r:b:i32 + +PATTERN: XOPV 0xCE VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 IMM0:r:b:i32 +} + +{ +ICLASS: VPCOMQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xCF VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 MEM0:r:dq:i64 IMM0:r:b:i64 + +PATTERN: XOPV 0xCF VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 REG2=XMM_B():r:dq:i64 IMM0:r:b:i64 +} + +{ +ICLASS: VPCOMUB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xEC VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 IMM0:r:b:u8 + +PATTERN: XOPV 0xEC VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 IMM0:r:b:u8 +} + +{ +ICLASS: VPCOMUW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xED VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 IMM0:r:b:u16 + +PATTERN: XOPV 0xED VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 IMM0:r:b:u16 +} + +{ +ICLASS: VPCOMUD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xEE VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 IMM0:r:b:u32 + +PATTERN: XOPV 0xEE VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 IMM0:r:b:u32 +} + +{ +ICLASS: VPCOMUQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xEF VNP W0 VL128 XMAP8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 IMM0:r:b:u64 + +PATTERN: XOPV 0xEF VNP W0 VL128 XMAP8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 IMM0:r:b:u64 +} + +{ +ICLASS: VFRCZPS +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP +ATTRIBUTES: MXCSR + +PATTERN: XOPV 0x80 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN: XOPV 0x80 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN: XOPV 0x80 VNP W0 VL256 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN: XOPV 0x80 VNP W0 VL256 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFRCZPD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP +ATTRIBUTES: MXCSR + +PATTERN: XOPV 0x81 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:f64 MEM0:r:dq:f64 + +PATTERN: XOPV 0x81 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 + +PATTERN: XOPV 0x81 VNP W0 VL256 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 + +PATTERN: XOPV 0x81 VNP W0 VL256 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFRCZSS +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: XOPV 0x82 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:f32 MEM0:r:d:f32 + +PATTERN: XOPV 0x82 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:d:f32 +} + +{ +ICLASS: VFRCZSD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: XOPV 0x83 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:f64 MEM0:r:q:f64 + +PATTERN: XOPV 0x83 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:q:f64 +} + +{ +ICLASS: VPROTB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x90 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u8 MEM0:r:dq:u8 REG1=XMM_N():r:dq:u8 + +PATTERN: XOPV 0x90 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_B():r:dq:u8 REG2=XMM_N():r:dq:u8 + +PATTERN: XOPV 0x90 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN: XOPV 0x90 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} + +{ +ICLASS: VPROTW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x91 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u16 MEM0:r:dq:u16 REG1=XMM_N():r:dq:u16 + +PATTERN: XOPV 0x91 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u16 REG2=XMM_N():r:dq:u16 + +PATTERN: XOPV 0x91 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN: XOPV 0x91 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} + +{ +ICLASS: VPROTD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x92 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u32 MEM0:r:dq:u32 REG1=XMM_N():r:dq:u32 + +PATTERN: XOPV 0x92 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:u32 REG2=XMM_N():r:dq:u32 + +PATTERN: XOPV 0x92 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN: XOPV 0x92 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} + +{ +ICLASS: VPROTQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x93 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 MEM0:r:dq:u64 REG1=XMM_N():r:dq:u64 + +PATTERN: XOPV 0x93 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:dq:u64 REG2=XMM_N():r:dq:u64 + +PATTERN: XOPV 0x93 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN: XOPV 0x93 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS: VPSHLB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x94 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u8 MEM0:r:dq:u8 REG1=XMM_N():r:dq:u8 + +PATTERN: XOPV 0x94 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_B():r:dq:u8 REG2=XMM_N():r:dq:u8 + +PATTERN: XOPV 0x94 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN: XOPV 0x94 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} + +{ +ICLASS: VPSHLW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x95 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u16 MEM0:r:dq:u16 REG1=XMM_N():r:dq:u16 + +PATTERN: XOPV 0x95 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u16 REG2=XMM_N():r:dq:u16 + +PATTERN: XOPV 0x95 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN: XOPV 0x95 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} + +{ +ICLASS: VPSHLD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x96 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u32 MEM0:r:dq:u32 REG1=XMM_N():r:dq:u32 + +PATTERN: XOPV 0x96 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:u32 REG2=XMM_N():r:dq:u32 + +PATTERN: XOPV 0x96 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN: XOPV 0x96 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} + +{ +ICLASS: VPSHLQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x97 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 MEM0:r:dq:u64 REG1=XMM_N():r:dq:u64 + +PATTERN: XOPV 0x97 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:dq:u64 REG2=XMM_N():r:dq:u64 + +PATTERN: XOPV 0x97 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN: XOPV 0x97 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS: VPHADDBW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC1 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i8 MEM0:r:dq:i8 + +PATTERN: XOPV 0xC1 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i8 REG1=XMM_B():r:dq:i8 +} + +{ +ICLASS: VPHADDBD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC2 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i32 MEM0:r:dq:i8 + +PATTERN: XOPV 0xC2 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:i8 +} + +{ +ICLASS: VPHADDBQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC3 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i64 MEM0:r:dq:i8 + +PATTERN: XOPV 0xC3 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:dq:i8 +} + +{ +ICLASS: VPHADDWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC6 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i32 MEM0:r:dq:i16 + +PATTERN: XOPV 0xC6 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:i16 +} + +{ +ICLASS: VPHADDWQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xC7 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i64 MEM0:r:dq:i16 + +PATTERN: XOPV 0xC7 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:dq:i16 +} + +{ +ICLASS: VPHADDUBW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xD1 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u16 MEM0:r:dq:u8 + +PATTERN: XOPV 0xD1 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u8 +} + +{ +ICLASS: VPHADDUBD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xD2 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u32 MEM0:r:dq:u8 + +PATTERN: XOPV 0xD2 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:u8 +} + +{ +ICLASS: VPHADDUBQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xD3 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 MEM0:r:dq:u8 + +PATTERN: XOPV 0xD3 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:dq:u8 +} + +{ +ICLASS: VPHADDUWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xD6 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u32 MEM0:r:dq:u16 + +PATTERN: XOPV 0xD6 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:u16 +} + +{ +ICLASS: VPHADDUWQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xD7 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 MEM0:r:dq:u16 + +PATTERN: XOPV 0xD7 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:dq:u16 +} + +{ +ICLASS: VPHSUBBW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xE1 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i16 MEM0:r:dq:i8 + +PATTERN: XOPV 0xE1 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_B():r:dq:i8 +} + +{ +ICLASS: VPHSUBWD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xE2 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i32 MEM0:r:dq:i16 + +PATTERN: XOPV 0xE2 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:i16 +} + +{ +ICLASS: VPHSUBDQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xE3 VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i64 MEM0:r:dq:i32 + +PATTERN: XOPV 0xE3 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:dq:i32 +} + +{ +ICLASS: VPSHAB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x98 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i8 MEM0:r:dq:i8 REG1=XMM_N():r:dq:i8 + +PATTERN: XOPV 0x98 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i8 REG1=XMM_B():r:dq:i8 REG2=XMM_N():r:dq:i8 + +PATTERN: XOPV 0x98 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN: XOPV 0x98 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} + +{ +ICLASS: VPSHAW +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x99 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i16 MEM0:r:dq:i16 REG1=XMM_N():r:dq:i16 + +PATTERN: XOPV 0x99 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_B():r:dq:i16 REG2=XMM_N():r:dq:i16 + +PATTERN: XOPV 0x99 VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN: XOPV 0x99 VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} + +{ +ICLASS: VPSHAD +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x9A VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i32 MEM0:r:dq:i32 REG1=XMM_N():r:dq:i32 + +PATTERN: XOPV 0x9A VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:i32 REG2=XMM_N():r:dq:i32 + +PATTERN: XOPV 0x9A VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN: XOPV 0x9A VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS: VPSHAQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x9B VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i64 MEM0:r:dq:i64 REG1=XMM_N():r:dq:i64 + +PATTERN: XOPV 0x9B VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:dq:i64 REG2=XMM_N():r:dq:i64 + +PATTERN: XOPV 0x9B VNP W1 VL128 XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 MEM0:r:dq:i64 + +PATTERN: XOPV 0x9B VNP W1 VL128 XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 REG2=XMM_B():r:dq:i64 +} + +{ +ICLASS: VPHADDDQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xCB VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:i64 MEM0:r:dq:i32 + +PATTERN: XOPV 0xCB VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:dq:i32 +} + +{ +ICLASS: VPHADDUDQ +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0xDB VNP W0 VL128 NOVSR XMAP9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS: REG0=XMM_R():w:dq:u64 MEM0:r:dq:u32 + +PATTERN: XOPV 0xDB VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS: REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:dq:u32 +} + +{ +ICLASS: BEXTR_XOP +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-0 pf-u af-u zf-mod sf-u of-0 ] + +PATTERN: XOPV 0x10 VNP W0 VL128 NOVSR XMAPA MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM32() +OPERANDS: REG0=GPRy_R():w:y MEM0:r:y IMM0:r:d + +PATTERN: XOPV 0x10 VNP W0 VL128 NOVSR XMAPA MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM32() +OPERANDS: REG0=GPRy_R():w:y REG1=GPRy_B():r:y IMM0:r:d +} + +{ +ICLASS: BLCFILL +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: BLSFILL +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: BLCS +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: TZMSK +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b100] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: BLCIC +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b101] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: BLSIC +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: T1MSKC +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b111] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: BLCMSK +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: BLCI +CPL: 3 +CATEGORY: TBM +ISA_SET: TBM +EXTENSION: TBM +FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ] + +PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:y + +PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn] +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:y +} + +{ +ICLASS: LLWPCB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x12 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[0b000] RM[nnn] +OPERANDS: REG0=GPRy_B():w:y +} + +{ +ICLASS: SLWPCB +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x12 VNP W0 VL128 NOVSR XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS: REG0=GPRy_B():w:y +} + +{ +ICLASS: LWPINS +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP +FLAGS: MUST [ cf-mod ] + +PATTERN: XOPV 0x12 VNP W0 VL128 XMAPA MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() UIMM32() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:d IMM0:r:d + +PATTERN: XOPV 0x12 VNP W0 VL128 XMAPA MOD[0b11] MOD=3 REG[0b000] RM[nnn] UIMM32() +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:d IMM0:r:d +} + +{ +ICLASS: LWPVAL +CPL: 3 +CATEGORY: XOP +ISA_SET: XOP +EXTENSION: XOP + +PATTERN: XOPV 0x12 VNP W0 VL128 XMAPA MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() UIMM32() +OPERANDS: REG0=GPRy_N():w:y MEM0:r:d IMM0:r:d + +PATTERN: XOPV 0x12 VNP W0 VL128 XMAPA MOD[0b11] MOD=3 REG[0b001] RM[nnn] UIMM32() +OPERANDS: REG0=GPRy_N():w:y REG1=GPRv_B():r:d IMM0:r:d +} + + +###FILE: ../xed/datafiles/amdxop/amd-fma4-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +AVX_INSTRUCTIONS():: +{ +ICLASS: VFMADDSUBPS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x5C V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x5C V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x5C V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 + +PATTERN: VV1 0x5C V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 + +PATTERN: VV1 0x5C V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x5C V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x5C V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 + +PATTERN: VV1 0x5C V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFMADDSUBPD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x5D V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x5D V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x5D V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 + +PATTERN: VV1 0x5D V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 + +PATTERN: VV1 0x5D V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x5D V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x5D V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 + +PATTERN: VV1 0x5D V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFMSUBADDPS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x5E V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x5E V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x5E V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 + +PATTERN: VV1 0x5E V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 + +PATTERN: VV1 0x5E V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x5E V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x5E V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 + +PATTERN: VV1 0x5E V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFMSUBADDPD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x5F V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x5F V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x5F V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 + +PATTERN: VV1 0x5F V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 + +PATTERN: VV1 0x5F V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x5F V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x5F V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 + +PATTERN: VV1 0x5F V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFMADDPS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x68 V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x68 V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x68 V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 + +PATTERN: VV1 0x68 V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 + +PATTERN: VV1 0x68 V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x68 V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x68 V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 + +PATTERN: VV1 0x68 V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFMADDPD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x69 V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x69 V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x69 V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 + +PATTERN: VV1 0x69 V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 + +PATTERN: VV1 0x69 V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x69 V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x69 V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 + +PATTERN: VV1 0x69 V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFMADDSS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x6A V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x6A V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x6A V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:d:f32 + +PATTERN: VV1 0x6A V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:d:f32 +} + +{ +ICLASS: VFMADDSD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x6B V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x6B V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x6B V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:q:f64 + +PATTERN: VV1 0x6B V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:q:f64 +} + +{ +ICLASS: VFMSUBPS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x6C V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x6C V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x6C V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 + +PATTERN: VV1 0x6C V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 + +PATTERN: VV1 0x6C V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x6C V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x6C V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 + +PATTERN: VV1 0x6C V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFMSUBPD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x6D V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x6D V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x6D V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 + +PATTERN: VV1 0x6D V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 + +PATTERN: VV1 0x6D V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x6D V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x6D V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 + +PATTERN: VV1 0x6D V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFMSUBSS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x6E V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x6E V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x6E V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:d:f32 + +PATTERN: VV1 0x6E V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:d:f32 +} + +{ +ICLASS: VFMSUBSD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x6F V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x6F V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x6F V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:q:f64 + +PATTERN: VV1 0x6F V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:q:f64 +} + +{ +ICLASS: VFNMADDPS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x78 V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x78 V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x78 V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 + +PATTERN: VV1 0x78 V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 + +PATTERN: VV1 0x78 V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x78 V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x78 V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 + +PATTERN: VV1 0x78 V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFNMADDPD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x79 V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x79 V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x79 V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 + +PATTERN: VV1 0x79 V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 + +PATTERN: VV1 0x79 V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x79 V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x79 V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 + +PATTERN: VV1 0x79 V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFNMADDSS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x7A V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x7A V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x7A V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:d:f32 + +PATTERN: VV1 0x7A V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:d:f32 +} + +{ +ICLASS: VFNMADDSD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x7B V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x7B V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x7B V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:q:f64 + +PATTERN: VV1 0x7B V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:q:f64 +} + +{ +ICLASS: VFNMSUBPS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x7C V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x7C V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x7C V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 + +PATTERN: VV1 0x7C V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 + +PATTERN: VV1 0x7C V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x7C V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 + +PATTERN: VV1 0x7C V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 + +PATTERN: VV1 0x7C V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 +} + +{ +ICLASS: VFNMSUBPD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: MXCSR + +PATTERN: VV1 0x7D V66 W0 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x7D V66 W0 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x7D V66 W1 VL128 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 + +PATTERN: VV1 0x7D V66 W1 VL128 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 + +PATTERN: VV1 0x7D V66 W0 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x7D V66 W0 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 + +PATTERN: VV1 0x7D V66 W1 VL256 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 + +PATTERN: VV1 0x7D V66 W1 VL256 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 +} + +{ +ICLASS: VFNMSUBSS +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x7E V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 REG2=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x7E V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 REG3=XMM_SE():r:dq:f32 + +PATTERN: VV1 0x7E V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:d:f32 + +PATTERN: VV1 0x7E V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:d:f32 +} + +{ +ICLASS: VFNMSUBSD +CPL: 3 +CATEGORY: FMA4 +ISA_SET: FMA4 +EXTENSION: FMA4 +ATTRIBUTES: SIMD_SCALAR MXCSR + +PATTERN: VV1 0x7F V66 W0 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 REG2=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x7F V66 W0 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 REG3=XMM_SE():r:dq:f64 + +PATTERN: VV1 0x7F V66 W1 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:q:f64 + +PATTERN: VV1 0x7F V66 W1 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS: REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:q:f64 +} + + +###FILE: ../xed/datafiles/amdxop/amd-vpermil2-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +AVX_INSTRUCTIONS():: + + +{ +ICLASS : VPERMIL2PS +CPL : 3 +CATEGORY : XOP +EXTENSION : XOP +ISA_SET : XOP + +# 128b W0 +PATTERN : VV1 0x48 VL128 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x48 VL128 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:f32 IMM0:r:b + +# 256b W0 +PATTERN : VV1 0x48 VL256 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x48 VL256 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:f32 IMM0:r:b + +# 128b W1 +PATTERN : VV1 0x48 VL128 V66 V0F3A W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x48 VL128 V66 V0F3A W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_SE():r:dq:f32 REG3=XMM_B():r:dq:f32 IMM0:r:b + +# 256b W1 +PATTERN : VV1 0x48 VL256 V66 V0F3A W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x48 VL256 V66 V0F3A W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_SE():r:qq:f32 REG3=YMM_B():r:qq:f32 IMM0:r:b + +} + + + +{ +ICLASS : VPERMIL2PD +CPL : 3 +CATEGORY : XOP +EXTENSION : XOP +ISA_SET : XOP + +# 128b W0 +PATTERN : VV1 0x49 VL128 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x49 VL128 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:f64 IMM0:r:b + +# 256b W0 +PATTERN : VV1 0x49 VL256 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x49 VL256 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:f64 IMM0:r:b + +# 128b W1 +PATTERN : VV1 0x49 VL128 V66 V0F3A W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x49 VL128 V66 V0F3A W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_SE():r:dq:f64 REG3=XMM_B():r:dq:f64 IMM0:r:b + +# 256b W1 +PATTERN : VV1 0x49 VL256 V66 V0F3A W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x49 VL256 V66 V0F3A W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_SE():r:qq:f64 REG3=YMM_B():r:qq:f64 IMM0:r:b + +} + + + +###FILE: ../xed/datafiles/xsaveopt/xsaveopt-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : XSAVEOPT +CPL : 3 +CATEGORY : XSAVEOPT +EXTENSION : XSAVEOPT +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b110] RM[nnn] no_refining_prefix norexw_prefix MODRM() +#FIXME 2007-06-25 need a meaningful width code for XSAVE/XSAVEOPT/XRSTOR +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + +{ +ICLASS : XSAVEOPT64 +CPL : 3 +CATEGORY : XSAVEOPT +EXTENSION : XSAVEOPT +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX + +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b110] RM[nnn] no_refining_prefix rexw_prefix MODRM() +#FIXME 2007-06-25 need a meaningful width code for XSAVE/XSAVEOPT/XRSTOR +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + + +###FILE: ../xed/datafiles/mpx/mpx-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + + +INSTRUCTIONS():: + + +UDELETE: NOP0F1A +UDELETE: NOP0F1B + + + +{ +ICLASS: BNDMK +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: NO_RIP_REL +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() f3_refining_prefix +OPERANDS: REG0=BND_R():w AGEN:r +} + + + + +{ +ICLASS: BNDCL +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: EXCEPTION_BR +COMMENT: 67 prefixes will be misinterpreted on MPX NI. XED cannot ignore them. +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() f3_refining_prefix +OPERANDS: REG0=BND_R():r AGEN:r + +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=3 REG[rrr] RM[nnn] f3_refining_prefix mode64 +OPERANDS: REG0=BND_R():r REG1=GPR64_B():r +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=3 REG[rrr] RM[nnn] f3_refining_prefix not64 +OPERANDS: REG0=BND_R():r REG1=GPR32_B():r +} + +{ +ICLASS: BNDCU +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: EXCEPTION_BR +COMMENT: 67 prefixes will be misinterpreted on MPX NI. XED cannot ignore them. +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() f2_refining_prefix +OPERANDS: REG0=BND_R():r AGEN:r + +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=3 REG[rrr] RM[nnn] f2_refining_prefix mode64 +OPERANDS: REG0=BND_R():r REG1=GPR64_B():r +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=3 REG[rrr] RM[nnn] f2_refining_prefix not64 +OPERANDS: REG0=BND_R():r REG1=GPR32_B():r +} + +{ +ICLASS: BNDCN +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: EXCEPTION_BR +COMMENT: 67 prefixes will be misinterpreted on MPX NI. XED cannot ignore them. +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() f2_refining_prefix +OPERANDS: REG0=BND_R():r AGEN:r + +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD=3 REG[rrr] RM[nnn] f2_refining_prefix mode64 +OPERANDS: REG0=BND_R():r REG1=GPR64_B():r +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD=3 REG[rrr] RM[nnn] f2_refining_prefix not64 +OPERANDS: REG0=BND_R():r REG1=GPR32_B():r + +} + +{ +ICLASS: BNDMOV +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: +COMMENT: load form + +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] osz_refining_prefix REFINING66() +OPERANDS: REG0=BND_R():w REG1=BND_B():r + +# 16b refs 64b memop (2x32b) but only if EASZ=32b! +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix REFINING66() mode16 eamode32 +OPERANDS: REG0=BND_R():w MEM0:r:q:u32 + +# 32b refs 64b memop (2x32b) +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix REFINING66() mode32 +OPERANDS: REG0=BND_R():w MEM0:r:q:u32 + +# 64b refs 128b memop (2x64b) +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix REFINING66() mode64 +OPERANDS: REG0=BND_R():w MEM0:r:dq:u64 + + + +} + +{ +ICLASS: BNDMOV +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: +COMMENT: store form + +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] osz_refining_prefix REFINING66() +OPERANDS: REG0=BND_B():w REG1=BND_R():r + +# 16b refs 64b memop (2x32b) but only if EASZ=32b! +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix REFINING66() mode16 eamode32 +OPERANDS: MEM0:w:q:u32 REG0=BND_R():r + +# 32b refs 64b memop (2x32b) +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix REFINING66() mode32 +OPERANDS: MEM0:w:q:u32 REG0=BND_R():r + +# 64b refs 128b memop (2x64b) +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix REFINING66() mode64 +OPERANDS: MEM0:w:dq:u64 REG0=BND_R():r +} + + +{ +ICLASS: BNDLDX +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: EXCEPTION_BR SPECIAL_AGEN_REQUIRED INDEX_REG_IS_POINTER NO_RIP_REL +COMMENT: RIP (mode64, easz64, MOD=0, RM=5) mode disallowed in 64b And 16/32b is easize32 only +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix not64 eamode32 +OPERANDS: REG0=BND_R():w MEM0:r:bnd32 +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=0 REG[rrr] RM[nnn] MODRM() no_refining_prefix mode64 # RM!=5 +OPERANDS: REG0=BND_R():w MEM0:r:bnd64 +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=1 REG[rrr] RM[nnn] MODRM() no_refining_prefix mode64 +OPERANDS: REG0=BND_R():w MEM0:r:bnd64 +PATTERN: 0x0F 0x1A MPXMODE=1 MOD[mm] MOD=2 REG[rrr] RM[nnn] MODRM() no_refining_prefix mode64 +OPERANDS: REG0=BND_R():w MEM0:r:bnd64 +} + +{ +ICLASS: BNDSTX +EXTENSION: MPX +CATEGORY: MPX +ISA_SET: MPX +ATTRIBUTES: EXCEPTION_BR SPECIAL_AGEN_REQUIRED INDEX_REG_IS_POINTER NO_RIP_REL +COMMENT: RIP (mode64, easz64, MOD=0, RM=5) mode disallowed in 64b And 16/32b is easize32 only +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix not64 eamode32 +OPERANDS: MEM0:w:bnd32 REG0=BND_R():r +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD=0 REG[rrr] RM[nnn] MODRM() no_refining_prefix mode64 # RM!=5 +OPERANDS: MEM0:w:bnd64 REG0=BND_R():r +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD=1 REG[rrr] RM[nnn] MODRM() no_refining_prefix mode64 +OPERANDS: MEM0:w:bnd64 REG0=BND_R():r +PATTERN: 0x0F 0x1B MPXMODE=1 MOD[mm] MOD=2 REG[rrr] RM[nnn] MODRM() no_refining_prefix mode64 +OPERANDS: MEM0:w:bnd64 REG0=BND_R():r +} + +{ +ICLASS : NOP +CPL : 3 +CATEGORY : WIDENOP +ATTRIBUTES: NOP +EXTENSION : BASE +ISA_SET : PPRO +COMMENT : MPXMODE=1: some of the reg/reg forms of these NOPs are still NOPs. + +PATTERN : 0x0F 0x1A MPXMODE=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1A + +PATTERN : 0x0F 0x1B MPXMODE=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1B + +PATTERN : 0x0F 0x1B MPXMODE=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] f3_refining_prefix +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1B +} + + +{ +ICLASS : NOP +CPL : 3 +CATEGORY : WIDENOP +ATTRIBUTES: NOP +EXTENSION : BASE +ISA_SET : PPRO +COMMENT : For MPXMODE=0 operation + +PATTERN : 0x0F 0x1A MPXMODE=0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1A + +PATTERN : 0x0F 0x1B MPXMODE=0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_B():r REG1=GPRv_R():r +IFORM : NOP_GPRv_GPRv_0F1B + +PATTERN : 0x0F 0x1A MPXMODE=0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_B():r MEM0:r:v +IFORM : NOP_GPRv_MEMv_0F1A + +PATTERN : 0x0F 0x1B MPXMODE=0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_B():r MEM0:r:v +IFORM : NOP_GPRv_MEM_0F1B +} + + + + +###FILE: ../xed/datafiles/sha/sha-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +INSTRUCTIONS():: +# EMITTING SHA1MSG1 (SHA1MSG1-N/A-1) +{ +ICLASS: SHA1MSG1 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x38 0xC9 MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +IFORM: SHA1MSG1_XMMi32_XMMi32_SHA +} + +{ +ICLASS: SHA1MSG1 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x38 0xC9 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +IFORM: SHA1MSG1_XMMi32_MEMi32_SHA +} + + +# EMITTING SHA1MSG2 (SHA1MSG2-N/A-1) +{ +ICLASS: SHA1MSG2 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x38 0xCA MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +IFORM: SHA1MSG2_XMMi32_XMMi32_SHA +} + +{ +ICLASS: SHA1MSG2 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x38 0xCA MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +IFORM: SHA1MSG2_XMMi32_MEMi32_SHA +} + + +# EMITTING SHA1NEXTE (SHA1NEXTE-N/A-1) +{ +ICLASS: SHA1NEXTE +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x38 0xC8 MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +IFORM: SHA1NEXTE_XMMi32_XMMi32_SHA +} + +{ +ICLASS: SHA1NEXTE +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x38 0xC8 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +IFORM: SHA1NEXTE_XMMi32_MEMi32_SHA +} + + +# EMITTING SHA1RNDS4 (SHA1RNDS4-N/A-1) +{ +ICLASS: SHA1RNDS4 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x3A 0xCC MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix UIMM8() +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 IMM0:r:b +IFORM: SHA1RNDS4_XMMi32_XMMi32_IMM8_SHA +} + +{ +ICLASS: SHA1RNDS4 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x3A 0xCC MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix UIMM8() +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 IMM0:r:b +IFORM: SHA1RNDS4_XMMi32_MEMi32_IMM8_SHA +} + + +# EMITTING SHA256MSG1 (SHA256MSG1-N/A-1) +{ +ICLASS: SHA256MSG1 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x38 0xCC MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +IFORM: SHA256MSG1_XMMi32_XMMi32_SHA +} + +{ +ICLASS: SHA256MSG1 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x38 0xCC MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +IFORM: SHA256MSG1_XMMi32_MEMi32_SHA +} + + +# EMITTING SHA256MSG2 (SHA256MSG2-N/A-1) +{ +ICLASS: SHA256MSG2 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x38 0xCD MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 +IFORM: SHA256MSG2_XMMi32_XMMi32_SHA +} + +{ +ICLASS: SHA256MSG2 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x38 0xCD MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 +IFORM: SHA256MSG2_XMMi32_MEMi32_SHA +} + + +# EMITTING SHA256RNDS2 (SHA256RNDS2-N/A-1) +{ +ICLASS: SHA256RNDS2 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +PATTERN: 0x0F 0x38 0xCB MOD[0b11] MOD=3 REG[rrr] RM[nnn] no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 REG1=XMM_B():r:dq:i32 REG2=XED_REG_XMM0:r:SUPP:dq:u8 +IFORM: SHA256RNDS2_XMMi32_XMMi32_SHA +} + +{ +ICLASS: SHA256RNDS2 +CPL: 3 +CATEGORY: SHA +EXTENSION: SHA +ISA_SET: SHA +EXCEPTIONS: SSE_TYPE_4 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT +PATTERN: 0x0F 0x38 0xCB MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() no_refining_prefix +OPERANDS: REG0=XMM_R():rw:dq:i32 MEM0:r:dq:i32 REG1=XED_REG_XMM0:r:SUPP:dq:u8 +IFORM: SHA256RNDS2_XMMi32_MEMi32_SHA +} + + + + +###FILE: ../xed/datafiles/ivbint/ivb-int-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : RDRAND +CPL : 3 +CATEGORY : RDRAND +EXTENSION : RDRAND +ISA_SET : RDRAND +FLAGS : MUST [ cf-mod zf-0 of-0 af-0 pf-0 sf-0 ] +PATTERN : 0x0F 0xC7 MOD[0b11] MOD=3 REG[0b110] RM[nnn] not_refining +OPERANDS : REG0=GPRv_B():w +} + + + +###FILE: ../xed/datafiles/ivbint/fsgsbase-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + + +{ +ICLASS : RDFSBASE +CPL : 3 +CATEGORY : RDWRFSGS +EXTENSION : RDWRFSGS + +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b000] RM[nnn] mode64 f3_refining_prefix no66_prefix +OPERANDS : REG0=GPRy_B():w REG1=XED_REG_FSBASE:r:SUPP:y + +} +{ +ICLASS : RDGSBASE +CPL : 3 +CATEGORY : RDWRFSGS +EXTENSION : RDWRFSGS + +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b001] RM[nnn] mode64 f3_refining_prefix no66_prefix +OPERANDS : REG0=GPRy_B():w REG1=XED_REG_GSBASE:r:SUPP:y + +} + + + +{ +ICLASS : WRFSBASE +CPL : 3 +CATEGORY : RDWRFSGS +EXTENSION : RDWRFSGS +ATTRIBUTES: NOTSX + +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b010] RM[nnn] mode64 f3_refining_prefix no66_prefix +OPERANDS : REG0=GPRy_B():r REG1=XED_REG_FSBASE:w:SUPP:y + +} +{ +ICLASS : WRGSBASE +CPL : 3 +CATEGORY : RDWRFSGS +EXTENSION : RDWRFSGS +ATTRIBUTES: NOTSX + +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b011] RM[nnn] mode64 f3_refining_prefix no66_prefix +OPERANDS : REG0=GPRy_B():r REG1=XED_REG_GSBASE:w:SUPP:y + +} + + +###FILE: ../xed/datafiles/xsaves/xsaves-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : XSAVES +CPL : 0 +CATEGORY : XSAVE +EXTENSION : XSAVES +COMMENT : variable length load and conditianal reg write +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() norexw_prefix no_refining_prefix +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + +{ +ICLASS : XSAVES64 +CPL : 0 +CATEGORY : XSAVE +EXTENSION : XSAVES +COMMENT : variable length load and conditianal reg write +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM() rexw_prefix no_refining_prefix +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + + + + +{ +ICLASS : XRSTORS +CPL : 0 +CATEGORY : XSAVE +EXTENSION : XSAVES +COMMENT : variable length load and conditianal reg write +ATTRIBUTES : xmm_state_w REQUIRES_ALIGNMENT x87_mmx_state_w NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() norexw_prefix no_refining_prefix +OPERANDS : MEM0:r:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + +{ +ICLASS : XRSTORS64 +CPL : 0 +CATEGORY : XSAVE +EXTENSION : XSAVES +COMMENT : variable length load and conditianal reg write +ATTRIBUTES : xmm_state_w REQUIRES_ALIGNMENT x87_mmx_state_w NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() rexw_prefix no_refining_prefix +OPERANDS : MEM0:r:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + + +###FILE: ../xed/datafiles/xsavec/xsavec-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : XSAVEC +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVEC +COMMENT : variable length store +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() norexw_prefix no_refining_prefix +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + + +{ +ICLASS : XSAVEC64 +CPL : 3 +CATEGORY : XSAVE +EXTENSION : XSAVEC +COMMENT : variable length store +ATTRIBUTES : xmm_state_r REQUIRES_ALIGNMENT x87_mmx_state_r NOTSX SPECIAL_AGEN_REQUIRED +PATTERN : 0x0F 0xC7 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() rexw_prefix no_refining_prefix +OPERANDS : MEM0:w:mxsave REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_XCR0:r:SUPP +} + + + + +###FILE: ../xed/datafiles/avx/avx-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +# The neat thing is we can just end a nonterminal by starting a new one. + +AVX_INSTRUCTIONS():: +{ +ICLASS : VADDPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x58 V66 VL128 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x58 V66 VL128 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x58 V66 VL256 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x58 V66 VL256 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VADDPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x58 VNP VL128 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x58 VNP VL128 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x58 VNP VL256 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x58 VNP VL256 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + +{ +ICLASS : VADDSD +EXCEPTIONS: avx-type-3 +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x58 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x58 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} + +{ +ICLASS : VADDSS +EXCEPTIONS: avx-type-3 +CPL : 3 +ATTRIBUTES : simd_scalar MXCSR +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x58 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x58 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + + +{ +ICLASS : VADDSUBPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xD0 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0xD0 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0xD0 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0xD0 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + +{ +ICLASS : VADDSUBPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xD0 VL128 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0xD0 VL128 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0xD0 VL256 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0xD0 VL256 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + +{ +ICLASS : VANDPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x54 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x54 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 + +PATTERN : VV1 0x54 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x54 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} + + + +{ +ICLASS : VANDPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x54 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x54 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x54 VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x54 VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq +} + + +{ +ICLASS : VANDNPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x55 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x55 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 + +PATTERN : VV1 0x55 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x55 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} + + + +{ +ICLASS : VANDNPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x55 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x55 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x55 VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x55 VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq +} + + + +{ +ICLASS : VBLENDPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x0D VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x0D VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x0D VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x0D VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 IMM0:r:b +} + + +{ +ICLASS : VBLENDPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x0C VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x0C VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x0C VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x0C VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 IMM0:r:b +} + + + + + + +{ +ICLASS : VCMPPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xC2 V66 VL128 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0xC2 V66 VL128 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0xC2 V66 VL256 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0xC2 V66 VL256 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 IMM0:r:b +} + + + +{ +ICLASS : VCMPPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xC2 VNP VL128 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0xC2 VNP VL128 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0xC2 VNP VL256 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0xC2 VNP VL256 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 IMM0:r:b +} + + + +{ +ICLASS : VCMPSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR +PATTERN : VV1 0xC2 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 IMM0:r:b + +PATTERN : VV1 0xC2 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 IMM0:r:b +} + + + +{ +ICLASS : VCMPSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX + +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0xC2 VF3 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 IMM0:r:b + +PATTERN : VV1 0xC2 VF3 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 IMM0:r:b +} + + +{ +ICLASS : VCOMISD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +FLAGS : MUST [ zf-mod pf-mod cf-mod of-0 af-0 sf-0 ] +PATTERN : VV1 0x2F V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:q:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x2F V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:q:f64 REG1=XMM_B():r:q:f64 +} + +{ +ICLASS : VCOMISS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +FLAGS : MUST [ zf-mod pf-mod cf-mod of-0 af-0 sf-0 ] +PATTERN : VV1 0x2F VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:d:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x2F VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:d:f32 REG1=XMM_B():r:d:f32 +} + + +{ +ICLASS : VCVTDQ2PD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xE6 VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:q:i32 + +PATTERN : VV1 0xE6 VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:q:i32 + +PATTERN : VV1 0xE6 VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:dq:i32 + +PATTERN : VV1 0xE6 VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=XMM_B():r:dq:i32 +} + +{ +ICLASS : VCVTDQ2PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5B VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:i32 + +PATTERN : VV1 0x5B VL128 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:i32 + +PATTERN : VV1 0x5B VL256 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:i32 + +PATTERN : VV1 0x5B VL256 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:i32 +} + +{ +ICLASS : VCVTPD2DQ +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xE6 VL128 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:dq:f64 + +PATTERN : VV1 0xE6 VL128 VF2 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:f64 + +PATTERN : VV1 0xE6 VL256 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:qq:f64 + +PATTERN : VV1 0xE6 VL256 VF2 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VCVTTPD2DQ +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xE6 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:dq:f64 + +PATTERN : VV1 0xE6 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:f64 + +PATTERN : VV1 0xE6 VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:qq:f64 + +PATTERN : VV1 0xE6 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VCVTPD2PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5A V66 VL128 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f64 + +PATTERN : VV1 0x5A V66 VL128 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f64 + +PATTERN : VV1 0x5A V66 VL256 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:qq:f64 + +PATTERN : VV1 0x5A V66 VL256 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=YMM_B():r:qq:f64 +} + +{ +ICLASS : VCVTPS2DQ +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5B VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:dq:f32 + +PATTERN : VV1 0x5B VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x5B VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 MEM0:r:qq:f32 + +PATTERN : VV1 0x5B VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_B():r:qq:f32 +} + +{ +ICLASS : VCVTTPS2DQ +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5B VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:dq:f32 + +PATTERN : VV1 0x5B VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x5B VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 MEM0:r:qq:f32 + +PATTERN : VV1 0x5B VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_B():r:qq:f32 +} + +{ +ICLASS : VCVTPS2PD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5A VNP VL128 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:q:f32 + +PATTERN : VV1 0x5A VNP VL128 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:q:f32 + +PATTERN : VV1 0x5A VNP VL256 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:dq:f32 + +PATTERN : VV1 0x5A VNP VL256 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=XMM_B():r:dq:f32 +} + + + + +{ +ICLASS : VCVTSD2SI +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x2D VF2 V0F VL128 NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:q:f64 + +PATTERN : VV1 0x2D VF2 V0F VL128 NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:q:f64 + + +PATTERN : VV1 0x2D VF2 V0F VL128 NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:q:f64 + +PATTERN : VV1 0x2D VF2 V0F VL128 NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:q:f64 + + + +PATTERN : VV1 0x2D VF2 V0F VL128 NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:q:f64 + +PATTERN : VV1 0x2D VF2 V0F VL128 NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:q:f64 +} + +{ +ICLASS : VCVTTSD2SI +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x2C VF2 V0F VL128 NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:q:f64 + +PATTERN : VV1 0x2C VF2 V0F VL128 NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:q:f64 + + + +PATTERN : VV1 0x2C VF2 V0F VL128 NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:q:f64 + +PATTERN : VV1 0x2C VF2 V0F VL128 NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:q:f64 + + + +PATTERN : VV1 0x2C VF2 V0F VL128 NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:q:f64 + +PATTERN : VV1 0x2C VF2 V0F VL128 NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:q:f64 +} + + + + +{ +ICLASS : VCVTSS2SI +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x2D VF3 V0F VL128 NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:d:f32 + +PATTERN : VV1 0x2D VF3 V0F VL128 NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:d:f32 + + + +PATTERN : VV1 0x2D VF3 V0F VL128 NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:d:f32 + +PATTERN : VV1 0x2D VF3 V0F VL128 NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:d:f32 + + +PATTERN : VV1 0x2D VF3 V0F VL128 NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:d:f32 + +PATTERN : VV1 0x2D VF3 V0F VL128 NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:d:f32 +} + +{ +ICLASS : VCVTTSS2SI +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x2C VF3 V0F VL128 NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:d:f32 + +PATTERN : VV1 0x2C VF3 V0F VL128 NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:d:f32 + + + +PATTERN : VV1 0x2C VF3 V0F VL128 NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR32_R():w:d:i32 MEM0:r:d:f32 + +PATTERN : VV1 0x2C VF3 V0F VL128 NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:i32 REG1=XMM_B():r:d:f32 + + + + +PATTERN : VV1 0x2C VF3 V0F VL128 NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPR64_R():w:q:i64 MEM0:r:d:f32 + +PATTERN : VV1 0x2C VF3 V0F VL128 NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR64_R():w:q:i64 REG1=XMM_B():r:d:f32 +} + + + + +{ +ICLASS : VCVTSD2SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:q:f64 + +PATTERN : VV1 0x5A VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:q:f64 + +} + + +{ +ICLASS : VCVTSI2SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x2A VF2 V0F not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:d:i32 + +PATTERN : VV1 0x2A VF2 V0F not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=GPR32_B():r:d:i32 + + + +PATTERN : VV1 0x2A VF2 V0F mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:d:i32 + +PATTERN : VV1 0x2A VF2 V0F mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=GPR32_B():r:d:i32 + + + +PATTERN : VV1 0x2A VF2 V0F mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:i64 + +PATTERN : VV1 0x2A VF2 V0F mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=GPR64_B():r:q:i64 +} + + +{ +ICLASS : VCVTSI2SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x2A VF3 V0F not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:i32 + +PATTERN : VV1 0x2A VF3 V0F not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=GPR32_B():r:d:i32 + + + +PATTERN : VV1 0x2A VF3 V0F mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:i32 + +PATTERN : VV1 0x2A VF3 V0F mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=GPR32_B():r:d:i32 + + + +PATTERN : VV1 0x2A VF3 V0F mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:q:i64 + +PATTERN : VV1 0x2A VF3 V0F mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=GPR64_B():r:q:i64 +} + + +{ +ICLASS : VCVTSS2SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : CONVERT +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:d:f32 + +PATTERN : VV1 0x5A VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:d:f32 +} + + +{ +ICLASS : VDIVPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5E V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x5E V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x5E V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x5E V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VDIVPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5E VNP V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x5E VNP V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x5E VNP V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x5E VNP V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + + +{ +ICLASS : VDIVSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5E VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x5E VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} + +{ +ICLASS : VDIVSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5E VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x5E VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + + +{ +ICLASS : VEXTRACTF128 +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x19 norexw_prefix VL256 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:dq:f64 REG0=YMM_R():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x19 norexw_prefix VL256 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_B():w:dq:f64 REG1=YMM_R():r:dq:f64 IMM0:r:b +} + + + +{ +ICLASS : VDPPD +EXCEPTIONS: avx-type-2D +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x41 VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x41 VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 IMM0:r:b +} + +{ +ICLASS : VDPPS +EXCEPTIONS: avx-type-2D +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x40 VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x40 VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x40 VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x40 VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 IMM0:r:b +} + + +{ +ICLASS : VEXTRACTPS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x17 VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:d:f32 REG0=XMM_R():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x17 VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w REG1=XMM_R():r:dq:f32 IMM0:r:b +} + + +{ +ICLASS : VZEROALL +EXCEPTIONS: avx-type-8 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : xmm_state_w + +PATTERN : VV1 0x77 VNP V0F VL256 NOVSR +OPERANDS: + +} + +# FIXME: how to denote partial upper clobber! +{ +ICLASS : VZEROUPPER +EXCEPTIONS: avx-type-8 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : xmm_state_w NOTSX # FIXME: should be ymm_state_w? + +PATTERN : VV1 0x77 VNP V0F VL128 NOVSR +OPERANDS: +} + + +{ +ICLASS : VHADDPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x7C VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x7C VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x7C VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x7C VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VHADDPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x7C VL128 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x7C VL128 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x7C VL256 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x7C VL256 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + +{ +ICLASS : VHSUBPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x7D VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x7D VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x7D VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x7D VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VHSUBPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x7D VL128 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x7D VL128 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x7D VL256 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x7D VL256 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + + +{ +ICLASS : VPERMILPD +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +# 2008-02-01 moved norexw_prefix to after V0F38 to avoid graph build conflict with VBLENDPD +PATTERN : VV1 0x0D VL128 V66 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:u64 + +PATTERN : VV1 0x0D VL128 V66 V0F38 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:u64 + +PATTERN : VV1 0x0D VL256 V66 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:u64 + +PATTERN : VV1 0x0D VL256 V66 V0F38 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:u64 + +######################################## +# IMMEDIATE FORM +######################################## + +# 2008-02-01 moved norexw_prefix to after V0F3A to avoid a graph build conflict with VPHSUBW +PATTERN : VV1 0x05 VL128 V66 V0F3A norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x05 VL128 V66 V0F3A norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x05 VL256 V66 V0F3A norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x05 VL256 V66 V0F3A norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 IMM0:r:b +} + + +{ +ICLASS : VPERMILPS +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +# moved norexw_prefix to after V0F38 to avoid graph build conflict with VBLENDPS +PATTERN : VV1 0x0C VL128 V66 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:u32 + +PATTERN : VV1 0x0C VL128 V66 V0F38 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:u32 + +PATTERN : VV1 0x0C VL256 V66 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:u32 + +PATTERN : VV1 0x0C VL256 V66 V0F38 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:u32 + +######################################## +# IMMEDIATE FORM +######################################## + +# 2008-02-01: moved norexw_prefix after V0F3A due to graph-build collision with VPMADDUBSW +PATTERN : VV1 0x04 VL128 V66 V0F3A norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x04 VL128 V66 V0F3A norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x04 VL256 V66 V0F3A norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x04 VL256 V66 V0F3A norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 IMM0:r:b +} + + +{ +ICLASS : VPERM2F128 +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX + +# 2008-02-01 moved norexw_prefix to after V0F3A to avoid conflict with VPHSUBD +PATTERN : VV1 0x06 VL256 V66 V0F3A norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x06 VL256 V66 V0F3A norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 IMM0:r:b +} + + + +{ +ICLASS : VBROADCASTSS +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX +PATTERN : VV1 0x18 norexw_prefix VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:d:f32 EMX_BROADCAST_1TO4_32 + +PATTERN : VV1 0x18 norexw_prefix VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:d:f32 EMX_BROADCAST_1TO8_32 +} +{ +ICLASS : VBROADCASTSD +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX +PATTERN : VV1 0x19 norexw_prefix VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:q:f64 EMX_BROADCAST_1TO4_64 +} + +{ +ICLASS : VBROADCASTF128 +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX +COMMENT : There is no F128 type. I just set these to f64 for lack of anything better. +PATTERN : VV1 0x1A norexw_prefix VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:dq:f64 EMX_BROADCAST_2TO4_64 +} + + +{ +ICLASS : VINSERTF128 +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x18 norexw_prefix VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:dq:f64 IMM0:r:b EMX_BROADCAST_2TO4_64 + +PATTERN : VV1 0x18 norexw_prefix VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=XMM_B():r:dq:f64 IMM0:r:b EMX_BROADCAST_2TO4_64 +} + +{ +ICLASS : VINSERTPS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x21 VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 IMM0:r:b + +PATTERN : VV1 0x21 VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 IMM0:r:b +} + + + + + +{ +ICLASS : VLDDQU +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF0 VL128 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq + +PATTERN : VV1 0xF0 VL256 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq MEM0:r:qq +} + + + + + + +{ +ICLASS : VMASKMOVPS +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : maskop +# load forms +PATTERN : VV1 0x2C V66 VL128 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq MEM0:r:dq:f32 + +PATTERN : VV1 0x2C V66 VL256 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq MEM0:r:qq:f32 + +# store forms +PATTERN : VV1 0x2E V66 V0F38 VL128 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f32 REG0=XMM_N():r:dq REG1=XMM_R():r:dq:f32 + +PATTERN : VV1 0x2E V66 V0F38 VL256 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f32 REG0=YMM_N():r:qq REG1=YMM_R():r:qq:f32 +} + +{ +ICLASS : VMASKMOVPD +EXCEPTIONS: avx-type-6 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : maskop +# load forms +PATTERN : VV1 0x2D V66 VL128 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:f64 + +PATTERN : VV1 0x2D V66 VL256 V0F38 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:f64 + +# store forms +PATTERN : VV1 0x2F V66 V0F38 VL128 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f64 REG0=XMM_N():r:dq:u64 REG1=XMM_R():r:dq:f64 + +PATTERN : VV1 0x2F V66 V0F38 VL256 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f64 REG0=YMM_N():r:qq:u64 REG1=YMM_R():r:qq:f64 +} + +{ +ICLASS : VPTEST +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX +FLAGS : MUST [ zf-mod cf-mod ] +PATTERN : VV1 0x17 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq + +PATTERN : VV1 0x17 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq + +PATTERN : VV1 0x17 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():r:qq MEM0:r:qq + +PATTERN : VV1 0x17 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():r:qq REG1=YMM_B():r:qq +} + +{ +ICLASS : VTESTPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +FLAGS : MUST [ zf-mod cf-mod ] +PATTERN : VV1 0x0E VL128 V66 V0F38 norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x0E VL128 V66 V0F38 norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x0E VL256 V66 V0F38 norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x0E VL256 V66 V0F38 norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():r:qq:f32 REG1=YMM_B():r:qq:f32 +} + +{ +ICLASS : VTESTPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +FLAGS : MUST [ zf-mod cf-mod ] +PATTERN : VV1 0x0F VL128 V66 V0F38 norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x0F VL128 V66 V0F38 norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq:f64 REG1=XMM_B():r:dq:f64 + +PATTERN : VV1 0x0F VL256 V66 V0F38 norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x0F VL256 V66 V0F38 norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():r:qq:f64 REG1=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VMAXPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5F V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x5F V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x5F V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x5F V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + +{ +ICLASS : VMAXPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5F VNP V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x5F VNP V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x5F VNP V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x5F VNP V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + + +{ +ICLASS : VMAXSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x5F VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} + +{ +ICLASS : VMAXSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x5F VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VMINPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5D V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x5D V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x5D V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x5D V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + +{ +ICLASS : VMINPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5D VNP V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x5D VNP V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x5D VNP V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x5D VNP V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + + +{ +ICLASS : VMINSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5D VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x5D VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} + +{ +ICLASS : VMINSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +PATTERN : VV1 0x5D VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x5D VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + + +{ +ICLASS : VMOVAPD +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT + +# 128b load + +PATTERN : VV1 0x28 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x28 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 +IFORM : VMOVAPD_XMMdq_XMMdq_28 + +# 128b store + +PATTERN : VV1 0x29 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f64 REG0=XMM_R():r:dq:f64 + +PATTERN : VV1 0x29 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq:f64 REG1=XMM_R():r:dq:f64 +IFORM : VMOVAPD_XMMdq_XMMdq_29 + +# 256b load + +PATTERN : VV1 0x28 VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x28 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 +IFORM : VMOVAPD_YMMqq_YMMqq_28 + +# 256b store + +PATTERN : VV1 0x29 VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f64 REG0=YMM_R():r:qq:f64 + +PATTERN : VV1 0x29 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_B():w:qq:f64 REG1=YMM_R():r:qq:f64 +IFORM : VMOVAPD_YMMqq_YMMqq_29 +} + + + +{ +ICLASS : VMOVAPS +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT + +# 128b load + +PATTERN : VV1 0x28 VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x28 VL128 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 +IFORM : VMOVAPS_XMMdq_XMMdq_28 +# 128b store + +PATTERN : VV1 0x29 VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f32 REG0=XMM_R():r:dq:f32 + +PATTERN : VV1 0x29 VL128 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq:f32 REG1=XMM_R():r:dq:f32 +IFORM : VMOVAPS_XMMdq_XMMdq_29 + +# 256b load + +PATTERN : VV1 0x28 VL256 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x28 VL256 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +IFORM : VMOVAPS_YMMqq_YMMqq_28 + +# 256b store + +PATTERN : VV1 0x29 VL256 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f32 REG0=YMM_R():r:qq:f32 + +PATTERN : VV1 0x29 VL256 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_B():w:qq:f32 REG1=YMM_R():r:qq:f32 +IFORM : VMOVAPS_YMMqq_YMMqq_29 +} + + + +{ +ICLASS : VMOVD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +# 32b load +PATTERN : VV1 0x6E VL128 V66 V0F not64 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:d + +PATTERN : VV1 0x6E VL128 V66 V0F not64 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=GPR32_B():r:d + +# 32b store +PATTERN : VV1 0x7E VL128 V66 V0F not64 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:d REG0=XMM_R():r:d + +PATTERN : VV1 0x7E VL128 V66 V0F not64 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:d + + + +# 32b load +PATTERN : VV1 0x6E VL128 V66 V0F mode64 norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:d + +PATTERN : VV1 0x6E VL128 V66 V0F mode64 norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=GPR32_B():r:d + +# 32b store +PATTERN : VV1 0x7E VL128 V66 V0F mode64 norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:d REG0=XMM_R():r:d + +PATTERN : VV1 0x7E VL128 V66 V0F mode64 norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:d + + +} + +{ +ICLASS : VMOVQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +# 64b load +PATTERN : VV1 0x6E VL128 V66 V0F mode64 rexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:q +IFORM : VMOVQ_XMMdq_MEMq_6E + +PATTERN : VV1 0x6E VL128 V66 V0F mode64 rexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=GPR64_B():r:q + +# 64b store +PATTERN : VV1 0x7E VL128 V66 V0F mode64 rexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:q +IFORM : VMOVQ_MEMq_XMMq_7E + +PATTERN : VV1 0x7E VL128 V66 V0F mode64 rexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR64_B():w:q REG1=XMM_R():r:q + + +# 2nd page of MOVQ forms +PATTERN : VV1 0x7E VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:q +IFORM : VMOVQ_XMMdq_MEMq_7E + +PATTERN : VV1 0x7E VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:q +IFORM : VMOVQ_XMMdq_XMMq_7E + +PATTERN : VV1 0xD6 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q REG0=XMM_R():r:q +IFORM : VMOVQ_MEMq_XMMq_D6 + +PATTERN : VV1 0xD6 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq REG1=XMM_R():r:q +IFORM : VMOVQ_XMMdq_XMMq_D6 + +} + + + + +{ +ICLASS : VMOVDDUP +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +PATTERN : VV1 0x12 VL128 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x12 VL128 VF2 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 + + +PATTERN : VV1 0x12 VL256 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x12 VL256 VF2 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 +} + + + +{ +ICLASS : VMOVDQA +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT + +# LOAD XMM + +PATTERN : VV1 0x6F VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq + +PATTERN : VV1 0x6F VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +IFORM : VMOVDQA_XMMdq_XMMdq_6F + +# STORE XMM + +PATTERN : VV1 0x7F VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:dq + +PATTERN : VV1 0x7F VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq REG1=XMM_R():r:dq +IFORM : VMOVDQA_XMMdq_XMMdq_7F + +# LOAD YMM + +PATTERN : VV1 0x6F VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq MEM0:r:qq + +PATTERN : VV1 0x6F VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_B():r:qq +IFORM : VMOVDQA_YMMqq_YMMqq_6F + + +# STORE YMM + +PATTERN : VV1 0x7F VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq REG0=YMM_R():r:qq + +PATTERN : VV1 0x7F VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_B():w:qq REG1=YMM_R():r:qq +IFORM : VMOVDQA_YMMqq_YMMqq_7F +} + + +{ +ICLASS : VMOVDQU +EXCEPTIONS: avx-type-4M +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +# LOAD XMM + +PATTERN : VV1 0x6F VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq + +PATTERN : VV1 0x6F VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +IFORM : VMOVDQU_XMMdq_XMMdq_6F + +# LOAD YMM + +PATTERN : VV1 0x6F VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq MEM0:r:qq + +PATTERN : VV1 0x6F VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_B():r:qq +IFORM : VMOVDQU_YMMqq_YMMqq_6F + +# STORE XMM + +PATTERN : VV1 0x7F VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq REG0=XMM_R():r:dq + +PATTERN : VV1 0x7F VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq REG1=XMM_R():r:dq +IFORM : VMOVDQU_XMMdq_XMMdq_7F + +# STORE YMM + +PATTERN : VV1 0x7F VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq REG0=YMM_R():r:qq + +PATTERN : VV1 0x7F VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_B():w:qq REG1=YMM_R():r:qq +IFORM : VMOVDQU_YMMqq_YMMqq_7F +} + +################################################# +## skipping to the end +################################################# + +################################################# +## MACROS +################################################# +{ +ICLASS : VMOVSHDUP +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +PATTERN : VV1 0x16 VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x16 VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x16 VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x16 VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +} +{ +ICLASS : VMOVSLDUP +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +PATTERN : VV1 0x12 VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x12 VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x12 VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x12 VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +} + + + +{ +ICLASS : VPOR +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX +PATTERN : VV1 0xEB VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 MEM0:r:dq:u128 + +PATTERN : VV1 0xEB VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 REG2=XMM_B():r:dq:u128 +} +{ +ICLASS : VPAND +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX +PATTERN : VV1 0xDB VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 MEM0:r:dq:u128 + +PATTERN : VV1 0xDB VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 REG2=XMM_B():r:dq:u128 +} +{ +ICLASS : VPANDN +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX +PATTERN : VV1 0xDF VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 MEM0:r:dq:u128 + +PATTERN : VV1 0xDF VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 REG2=XMM_B():r:dq:u128 +} +{ +ICLASS : VPXOR +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX +PATTERN : VV1 0xEF VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 MEM0:r:dq:u128 + +PATTERN : VV1 0xEF VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u128 REG2=XMM_B():r:dq:u128 +} + + +{ +ICLASS : VPABSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x1C V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 MEM0:r:dq:i8 + +PATTERN : VV1 0x1C V66 V0F38 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_B():r:dq:i8 +} +{ +ICLASS : VPABSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x1D V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:dq:i16 + +PATTERN : VV1 0x1D V66 V0F38 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:i16 +} +{ +ICLASS : VPABSD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x1E V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:dq:i32 + +PATTERN : VV1 0x1E V66 V0F38 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPHMINPOSUW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x41 V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0x41 V66 V0F38 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:dq:u16 +} + + + + + + + + + + +{ +ICLASS : VPSHUFD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x70 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq IMM0:r:b + +PATTERN : VV1 0x70 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq IMM0:r:b +} +{ +ICLASS : VPSHUFHW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x70 VL128 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq IMM0:r:b + +PATTERN : VV1 0x70 VL128 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq IMM0:r:b +} +{ +ICLASS : VPSHUFLW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x70 VL128 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq IMM0:r:b + +PATTERN : VV1 0x70 VL128 VF2 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq IMM0:r:b +} + + + + + + + + + + + + + +{ +ICLASS : VPACKSSWB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x63 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x63 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPACKSSDW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x6B VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x6B VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} +{ +ICLASS : VPACKUSWB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x67 V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x67 V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPACKUSDW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x2B V66 V0F38 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x2B V66 V0F38 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPSLLW +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF1 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u64 + +PATTERN : VV1 0xF1 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u64 +} +{ +ICLASS : VPSLLD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF2 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u64 + +PATTERN : VV1 0xF2 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u64 +} +{ +ICLASS : VPSLLQ +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF3 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0xF3 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS : VPSRLW +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD1 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u64 + +PATTERN : VV1 0xD1 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u64 +} +{ +ICLASS : VPSRLD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD2 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u64 + +PATTERN : VV1 0xD2 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u64 +} +{ +ICLASS : VPSRLQ +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD3 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0xD3 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS : VPSRAW +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE1 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:u64 + +PATTERN : VV1 0xE1 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:u64 +} +{ +ICLASS : VPSRAD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE2 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:u64 + +PATTERN : VV1 0xE2 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS : VPADDB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xFC VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0xFC VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPADDW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xFD VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xFD VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPADDD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xFE VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0xFE VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} +{ +ICLASS : VPADDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD4 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 MEM0:r:dq:i64 + +PATTERN : VV1 0xD4 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 REG2=XMM_B():r:dq:i64 +} + +{ +ICLASS : VPADDSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xEC VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0xEC VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPADDSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xED VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xED VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} + +{ +ICLASS : VPADDUSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xDC VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0xDC VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPADDUSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xDD VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0xDD VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} + +{ +ICLASS : VPAVGB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE0 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0xE0 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPAVGW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE3 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0xE3 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} + +{ +ICLASS : VPCMPEQB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x74 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0x74 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPCMPEQW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x75 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0x75 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} +{ +ICLASS : VPCMPEQD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x76 V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0x76 V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} +{ +ICLASS : VPCMPEQQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x29 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x29 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS : VPCMPGTB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x64 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0x64 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPCMPGTW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x65 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x65 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPCMPGTD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x66 V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x66 V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} +{ +ICLASS : VPCMPGTQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x37 V66 V0F38 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i64 MEM0:r:dq:i64 + +PATTERN : VV1 0x37 V66 V0F38 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i64 REG2=XMM_B():r:dq:i64 +} + +{ +ICLASS : VPHADDW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x01 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x01 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPHADDD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x02 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x02 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} +{ +ICLASS : VPHADDSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x03 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x03 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPHSUBW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x05 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x05 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPHSUBD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x06 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x06 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} +{ +ICLASS : VPHSUBSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x07 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x07 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} + +{ +ICLASS : VPMULHUW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE4 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0xE4 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} +{ +ICLASS : VPMULHRSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x0B VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x0B VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPMULHW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE5 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xE5 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPMULLW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD5 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xD5 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPMULLD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x40 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x40 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPMULUDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF4 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0xF4 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} +{ +ICLASS : VPMULDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x28 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x28 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPSADBW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF6 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0xF6 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPSHUFB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x00 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0x00 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} + +{ +ICLASS : VPSIGNB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x08 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0x08 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPSIGNW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x09 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0x09 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPSIGND +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x0A VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x0A VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPSUBSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE8 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0xE8 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPSUBSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xE9 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xE9 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} + +{ +ICLASS : VPSUBUSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD8 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0xD8 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPSUBUSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD9 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0xD9 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} + +{ +ICLASS : VPSUBB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF8 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0xF8 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPSUBW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF9 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xF9 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPSUBD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xFA VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0xFA VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} +{ +ICLASS : VPSUBQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xFB VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 MEM0:r:dq:i64 + +PATTERN : VV1 0xFB VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_N():r:dq:i64 REG2=XMM_B():r:dq:i64 +} + +{ +ICLASS : VPUNPCKHBW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x68 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0x68 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPUNPCKHWD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x69 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0x69 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} +{ +ICLASS : VPUNPCKHDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x6A VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0x6A VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} +{ +ICLASS : VPUNPCKHQDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x6D VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x6D VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + +{ +ICLASS : VPUNPCKLBW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x60 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0x60 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPUNPCKLWD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x61 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0x61 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} +{ +ICLASS : VPUNPCKLDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x62 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0x62 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} +{ +ICLASS : VPUNPCKLQDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x6C VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x6C VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 +} + + + +{ +ICLASS : VPSRLDQ +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x73 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b011] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u128 REG1=XMM_B():r:dq:u128 IMM0:r:b # NDD +} +{ +ICLASS : VPSLLDQ +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x73 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b111] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u128 REG1=XMM_B():r:dq:u128 IMM0:r:b # NDD +} + + + + + + + + + + + + + + + + + + + + +{ +ICLASS : VMOVLHPS +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +PATTERN : VV1 0x16 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:q:f32 REG2=XMM_B():r:q:f32 +} +{ +ICLASS : VMOVHLPS +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +PATTERN : VV1 0x12 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 +} + + + + + + + +{ +ICLASS : VPALIGNR +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x0F VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 IMM0:r:b + +PATTERN : VV1 0x0F VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 IMM0:r:b +} +{ +ICLASS : VPBLENDW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x0E VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 IMM0:r:b + +PATTERN : VV1 0x0E VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 IMM0:r:b +} + + + + + + + + + + + + +############################################################ +{ +ICLASS : VROUNDPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x09 VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x09 VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0x09 VL256 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x09 VL256 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 IMM0:r:b +} +{ +ICLASS : VROUNDPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x08 VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x08 VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x08 VL256 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x08 VL256 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 IMM0:r:b +} +{ +ICLASS : VROUNDSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR simd_scalar +PATTERN : VV1 0x0B V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 IMM0:r:b + +PATTERN : VV1 0x0B V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 IMM0:r:b +} +{ +ICLASS : VROUNDSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR simd_scalar +PATTERN : VV1 0x0A V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 IMM0:r:b + +PATTERN : VV1 0x0A V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 IMM0:r:b +} + +{ +ICLASS : VSHUFPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xC6 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 IMM0:r:b + +PATTERN : VV1 0xC6 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 IMM0:r:b + +PATTERN : VV1 0xC6 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0xC6 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 IMM0:r:b +} +{ +ICLASS : VSHUFPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xC6 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 IMM0:r:b + +PATTERN : VV1 0xC6 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0xC6 VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 IMM0:r:b + +PATTERN : VV1 0xC6 VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 IMM0:r:b +} + +{ +ICLASS : VRCPPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x53 VNP VL128 NOVSR V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x53 VNP VL128 NOVSR V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x53 VNP VL256 NOVSR V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x53 VNP VL256 NOVSR V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +} +{ +ICLASS : VRCPSS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: simd_scalar +PATTERN : VV1 0x53 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x53 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VRSQRTPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x52 VNP VL128 NOVSR V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x52 VNP VL128 NOVSR V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x52 VNP VL256 NOVSR V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x52 VNP VL256 NOVSR V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +} +{ +ICLASS : VRSQRTSS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: simd_scalar +PATTERN : VV1 0x52 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x52 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VSQRTPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x51 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x51 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 + +PATTERN : VV1 0x51 VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x51 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 +} +{ +ICLASS : VSQRTPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x51 VL128 VNP NOVSR V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x51 VL128 VNP NOVSR V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 + +PATTERN : VV1 0x51 VL256 VNP NOVSR V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x51 VL256 VNP NOVSR V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +} +{ +ICLASS : VSQRTSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : MXCSR simd_scalar +PATTERN : VV1 0x51 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x51 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VSQRTSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR simd_scalar +PATTERN : VV1 0x51 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x51 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + + +{ +ICLASS : VUNPCKHPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x15 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x15 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x15 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x15 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VUNPCKHPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x15 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x15 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x15 VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x15 VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + + +{ +ICLASS : VSUBPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5C V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x5C V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x5C V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x5C V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VSUBPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x5C VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x5C VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x5C VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x5C VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VSUBSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : MXCSR SIMD_SCALAR +PATTERN : VV1 0x5C VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x5C VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VSUBSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR simd_scalar +PATTERN : VV1 0x5C VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x5C VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VMULPD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x59 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x59 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x59 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x59 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VMULPS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0x59 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x59 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x59 VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x59 VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VMULSD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : MXCSR simd_scalar +PATTERN : VV1 0x59 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x59 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VMULSS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR simd_scalar +PATTERN : VV1 0x59 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x59 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VORPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x56 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x56 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 + +PATTERN : VV1 0x56 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x56 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} +{ +ICLASS : VORPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x56 VNP V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0x56 VNP V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 + +PATTERN : VV1 0x56 VNP V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x56 VNP V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} + +{ +ICLASS : VPMAXSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x3C VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0x3C VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPMAXSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xEE VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xEE VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPMAXSD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x3D VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x3D VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPMAXUB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xDE VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0xDE VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPMAXUW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x3E VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0x3E VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} +{ +ICLASS : VPMAXUD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x3F VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0x3F VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} + +{ +ICLASS : VPMINSB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x38 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 + +PATTERN : VV1 0x38 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 +} +{ +ICLASS : VPMINSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xEA VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xEA VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPMINSD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x39 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 MEM0:r:dq:i32 + +PATTERN : VV1 0x39 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i32 REG2=XMM_B():r:dq:i32 +} + +{ +ICLASS : VPMINUB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xDA VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 + +PATTERN : VV1 0xDA VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 +} +{ +ICLASS : VPMINUW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x3A V66 V0F38 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:dq:u16 + +PATTERN : VV1 0x3A V66 V0F38 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=XMM_B():r:dq:u16 +} +{ +ICLASS : VPMINUD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x3B V66 V0F38 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + +PATTERN : VV1 0x3B V66 V0F38 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 +} + + +{ +ICLASS : VPMADDWD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xF5 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 MEM0:r:dq:i16 + +PATTERN : VV1 0xF5 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_N():r:dq:i16 REG2=XMM_B():r:dq:i16 +} +{ +ICLASS : VPMADDUBSW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x04 VL128 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:u8 MEM0:r:dq:i8 + +PATTERN : VV1 0x04 VL128 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:i8 +} + + +{ +ICLASS : VMPSADBW +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x42 VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u8 MEM0:r:dq:u8 IMM0:r:b + +PATTERN : VV1 0x42 VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u8 REG2=XMM_B():r:dq:u8 IMM0:r:b +} + + +############################################################ +{ +ICLASS : VPSLLW +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x71 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u16 REG1=XMM_B():r:dq:u16 IMM0:r:b # NDD +} +{ +ICLASS : VPSLLD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x72 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u32 REG1=XMM_B():r:dq:u32 IMM0:r:b #NDD +} +{ +ICLASS : VPSLLQ +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x73 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u64 REG1=XMM_B():r:dq:u64 IMM0:r:b # NDD +} + +{ +ICLASS : VPSRAW +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x71 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:i16 REG1=XMM_B():r:dq:i16 IMM0:r:b # NDD +} +{ +ICLASS : VPSRAD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x72 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:i32 REG1=XMM_B():r:dq:i32 IMM0:r:b # NDD +} +{ +ICLASS : VPSRLW +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x71 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u16 REG1=XMM_B():r:dq:u16 IMM0:r:b # NDD +} +{ +ICLASS : VPSRLD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x72 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u32 REG1=XMM_B():r:dq:u32 IMM0:r:b # NDD +} +{ +ICLASS : VPSRLQ +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x73 VL128 V66 V0F MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_N():w:dq:u64 REG1=XMM_B():r:dq:u64 IMM0:r:b # NDD +} + + +{ +ICLASS : VUCOMISD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +FLAGS : MUST [ zf-mod pf-mod cf-mod of-0 af-0 sf-0 ] + +PATTERN : VV1 0x2E V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x2E V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq:f64 REG1=XMM_B():r:q:f64 +} + +{ +ICLASS : VUCOMISS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : simd_scalar MXCSR + +FLAGS : MUST [ zf-mod pf-mod cf-mod of-0 af-0 sf-0 ] + +PATTERN : VV1 0x2E VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():r:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x2E VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq:f32 REG1=XMM_B():r:d:f32 +} + +############################################### + + +{ +ICLASS : VUNPCKLPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x14 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x14 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + +PATTERN : VV1 0x14 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x14 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} + + +{ +ICLASS : VUNPCKLPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x14 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x14 VL128 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +PATTERN : VV1 0x14 VL256 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x14 VL256 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + + + +{ +ICLASS : VXORPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x57 V66 V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0x57 V66 V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 + +PATTERN : VV1 0x57 V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x57 V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} + + +{ +ICLASS : VXORPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : LOGICAL_FP +EXTENSION : AVX +PATTERN : VV1 0x57 VNP V0F VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x57 VNP V0F VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x57 VNP V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x57 VNP V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq +} + + +############################################################################ + +{ +ICLASS : VMOVSS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : simd_scalar + +# NOTE: REG1 is ignored!!! +PATTERN : VV1 0x10 VF3 V0F MOD[mm] MOD!=3 NOVSR REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:d:f32 + +PATTERN : VV1 0x10 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:d:f32 +IFORM : VMOVSS_XMMdq_XMMdq_XMMd_10 + +PATTERN : VV1 0x11 VF3 V0F MOD[mm] MOD!=3 NOVSR REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:d:f32 REG0=XMM_R():r:d:f32 + +PATTERN : VV1 0x11 VF3 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_R():r:d:f32 +IFORM : VMOVSS_XMMdq_XMMdq_XMMd_11 +} +############################################################################ +{ +ICLASS : VMOVSD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : simd_scalar + +# NOTE: REG1 is ignored!!! +PATTERN : VV1 0x10 VF2 V0F MOD[mm] MOD!=3 NOVSR REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x10 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:q:f64 +IFORM : VMOVSD_XMMdq_XMMdq_XMMq_10 + +PATTERN : VV1 0x11 VF2 V0F MOD[mm] MOD!=3 NOVSR REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q:f64 REG0=XMM_R():r:q:f64 + +PATTERN : VV1 0x11 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_R():r:q:f64 +IFORM : VMOVSD_XMMdq_XMMdq_XMMq_11 +} +############################################################################ +{ +ICLASS : VMOVUPD +EXCEPTIONS: avx-type-4M +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +PATTERN : VV1 0x10 V66 VL128 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 MEM0:r:dq:f64 + +PATTERN : VV1 0x10 V66 VL128 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_B():r:dq:f64 +IFORM : VMOVUPD_XMMdq_XMMdq_10 + +PATTERN : VV1 0x11 V66 VL128 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f64 REG0=XMM_R():r:dq:f64 + +PATTERN : VV1 0x11 V66 VL128 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq:f64 REG1=XMM_R():r:dq:f64 +IFORM : VMOVUPD_XMMdq_XMMdq_11 + +# 256b versions + +PATTERN : VV1 0x10 V66 VL256 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 + +PATTERN : VV1 0x10 V66 VL256 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 +IFORM : VMOVUPD_YMMqq_YMMqq_10 + +PATTERN : VV1 0x11 V66 VL256 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f64 REG0=YMM_R():r:qq:f64 + +PATTERN : VV1 0x11 V66 VL256 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_B():w:qq:f64 REG1=YMM_R():r:qq:f64 +IFORM : VMOVUPD_YMMqq_YMMqq_11 +} + +############################################################################ +{ +ICLASS : VMOVUPS +EXCEPTIONS: avx-type-4M +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +PATTERN : VV1 0x10 VNP VL128 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:dq:f32 + +PATTERN : VV1 0x10 VNP VL128 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 +IFORM : VMOVUPS_XMMdq_XMMdq_10 + +PATTERN : VV1 0x11 VNP VL128 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f32 REG0=XMM_R():r:dq:f32 + +PATTERN : VV1 0x11 VNP VL128 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_B():w:dq:f32 REG1=XMM_R():r:dq:f32 +IFORM : VMOVUPS_XMMdq_XMMdq_11 + +# 256b versions + +PATTERN : VV1 0x10 VNP VL256 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x10 VNP VL256 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_B():r:qq:f32 +IFORM : VMOVUPS_YMMqq_YMMqq_10 + +PATTERN : VV1 0x11 VNP VL256 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f32 REG0=YMM_R():r:qq:f32 + +PATTERN : VV1 0x11 VNP VL256 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_B():w:qq:f32 REG1=YMM_R():r:qq:f32 +IFORM : VMOVUPS_YMMqq_YMMqq_11 +} + + +############################################################################ +{ +ICLASS : VMOVLPD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +COMMENT: 3op version uses high part of XMM_N +PATTERN : VV1 0x12 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x13 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q:f64 REG0=XMM_R():r:q:f64 +} + +{ +ICLASS : VMOVLPS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +COMMENT: 3op version uses high part of XMM_N +PATTERN : VV1 0x12 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:q:f32 + +PATTERN : VV1 0x13 VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q:f32 REG0=XMM_R():r:q:f32 +} + +{ +ICLASS : VMOVHPD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +COMMENT: 3op form use low bits of REG1, 2op form uses high bits of REG0 +PATTERN : VV1 0x16 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 + +PATTERN : VV1 0x17 VL128 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q:f64 REG0=XMM_R():r:dq:f64 +} + +{ +ICLASS : VMOVHPS +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX + +COMMENT: 3op form use low bits of REG1, 2op form uses high bits of REG0 +PATTERN : VV1 0x16 VL128 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:q:f32 MEM0:r:q:f32 + +PATTERN : VV1 0x17 VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:q:f32 REG0=XMM_R():r:dq:f32 +} +############################################################################ + +{ +ICLASS : VMOVMSKPD +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +PATTERN : VV1 0x50 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d REG1=XMM_B():r:dq:f64 + +# 256b versions + +PATTERN : VV1 0x50 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d REG1=YMM_B():r:qq:f64 +} + +{ +ICLASS : VMOVMSKPS +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +PATTERN : VV1 0x50 VL128 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d REG1=XMM_B():r:dq:f32 + +# 256b versions + +PATTERN : VV1 0x50 VL256 VNP V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d REG1=YMM_B():r:qq:f32 +} + +############################################################################ +{ +ICLASS : VPMOVMSKB +EXCEPTIONS: avx-type-7 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0xD7 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:u32 REG1=XMM_B():r:dq:i8 +} + +############################################################################ + +############################################################################ +# SX versions +############################################################################ + +{ +ICLASS : VPMOVSXBW +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x20 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i16 REG1=XMM_B():r:q:i8 +PATTERN : VV1 0x20 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i16 MEM0:r:q:i8 +} + +############################################################################ +{ +ICLASS : VPMOVSXBD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x21 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:d:i8 +PATTERN : VV1 0x21 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:d:i8 +} +############################################################################ +{ +ICLASS : VPMOVSXBQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x22 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:w:i8 +PATTERN : VV1 0x22 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 MEM0:r:w:i8 +} +############################################################################ +{ +ICLASS : VPMOVSXWD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x23 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i32 REG1=XMM_B():r:q:i16 +PATTERN : VV1 0x23 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i32 MEM0:r:q:i16 +} +############################################################################ +{ +ICLASS : VPMOVSXWQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x24 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:d:i16 +PATTERN : VV1 0x24 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 MEM0:r:d:i16 +} +############################################################################ +{ +ICLASS : VPMOVSXDQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x25 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:i64 REG1=XMM_B():r:q:i32 +PATTERN : VV1 0x25 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:i64 MEM0:r:q:i32 +} + + + + + +############################################################################ +# ZX versions +############################################################################ + +{ +ICLASS : VPMOVZXBW +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x30 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:q:u8 +PATTERN : VV1 0x30 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:q:u8 +} + +############################################################################ +{ +ICLASS : VPMOVZXBD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x31 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:d:u8 +PATTERN : VV1 0x31 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:d:u8 +} +############################################################################ +{ +ICLASS : VPMOVZXBQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x32 V66 V0F38 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:w:u8 +PATTERN : VV1 0x32 V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:w:u8 +} +############################################################################ +{ +ICLASS : VPMOVZXWD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x33 V66 V0F38 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:q:u16 +PATTERN : VV1 0x33 V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:q:u16 +} +############################################################################ +{ +ICLASS : VPMOVZXWQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x34 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:d:u16 +PATTERN : VV1 0x34 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:d:u16 +} +############################################################################ +{ +ICLASS : VPMOVZXDQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x35 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:q:u32 +PATTERN : VV1 0x35 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:q:u32 +} + + + +############################################################################ +############################################################################ +{ +ICLASS : VPEXTRB +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +COMMENT: WIG +PATTERN : VV1 0x14 VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:b REG0=XMM_R():r:dq:u8 IMM0:r:b + +PATTERN : VV1 0x14 VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:dq:u8 IMM0:r:b +} +############################################################################ +{ +ICLASS : VPEXTRW +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +COMMENT: WIG + +PATTERN : VV1 0x15 VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:w REG0=XMM_R():r:dq:u16 IMM0:r:b + +PATTERN : VV1 0x15 VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:dq:u16 IMM0:r:b +IFORM : VPEXTRW_GPR32d_XMMdq_IMMb_15 + +# special C5 reg-only versions from SSE2: + +PATTERN : VV1 0xC5 VL128 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_R():w:d REG1=XMM_B():r:dq:u16 IMM0:r:b +IFORM : VPEXTRW_GPR32d_XMMdq_IMMb_C5 +} +############################################################################ +{ +ICLASS : VPEXTRQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x16 VL128 V66 V0F3A rexw_prefix mode64 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:q REG0=XMM_R():r:dq:u64 IMM0:r:b +PATTERN : VV1 0x16 VL128 V66 V0F3A rexw_prefix mode64 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR64_B():w:q REG1=XMM_R():r:dq:u64 IMM0:r:b +} +############################################################################ +{ +ICLASS : VPEXTRD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x16 VL128 V66 V0F3A norexw_prefix NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:d REG0=XMM_R():r:dq:u32 IMM0:r:b +PATTERN : VV1 0x16 VL128 V66 V0F3A norexw_prefix NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=GPR32_B():w:d REG1=XMM_R():r:dq:u32 IMM0:r:b +} +############################################################################ + + + + + + +{ +ICLASS : VPINSRB +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +COMMENT: WIG +PATTERN : VV1 0x20 VL128 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 MEM0:r:b:u8 IMM0:r:b +PATTERN : VV1 0x20 VL128 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_N():r:dq:u8 REG2=GPR32_B():r:d:u8 IMM0:r:b +} + +{ +ICLASS : VPINSRW +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +COMMENT : WIG +PATTERN : VV1 0xC4 VL128 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 MEM0:r:w:u16 IMM0:r:b + +PATTERN : VV1 0xC4 VL128 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_N():r:dq:u16 REG2=GPR32_B():r:d:u16 IMM0:r:b +} + +{ +ICLASS : VPINSRD +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x22 VL128 V66 V0F3A norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:d:u32 IMM0:r:b +PATTERN : VV1 0x22 VL128 V66 V0F3A norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=GPR32_B():r:d:u32 IMM0:r:b +} +{ +ICLASS : VPINSRQ +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x22 VL128 V66 V0F3A rexw_prefix mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:q:u64 IMM0:r:b +PATTERN : VV1 0x22 VL128 V66 V0F3A rexw_prefix mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 REG2=GPR64_B():r:q:u64 IMM0:r:b +} + +############################################################################ + + + + + +{ +ICLASS : VPCMPESTRI +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : STTNI +EXTENSION : AVX +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] + +# outside of 64b mode, vex.w is ignored for this instr +PATTERN : VV1 0x61 VL128 V66 V0F3A NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_EDX:r:SUPP REG3=XED_REG_ECX:w:SUPP +PATTERN : VV1 0x61 VL128 V66 V0F3A NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_ECX:w:SUPP + +# in 64b mode, vex.w changes the behavior for GPRs +PATTERN : VV1 0x61 VL128 V66 V0F3A NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_EDX:r:SUPP REG3=XED_REG_ECX:w:SUPP +PATTERN : VV1 0x61 VL128 V66 V0F3A NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_ECX:w:SUPP + +PATTERN : VV1 0x61 VL128 V66 V0F3A NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_RAX:r:SUPP REG2=XED_REG_RDX:r:SUPP REG3=XED_REG_RCX:w:SUPP +PATTERN : VV1 0x61 VL128 V66 V0F3A NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_RAX:r:SUPP REG3=XED_REG_RDX:r:SUPP REG4=XED_REG_RCX:w:SUPP +} +{ +ICLASS : VPCMPISTRI +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : STTNI +EXTENSION : AVX +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] + +# outside of 64b mode, vex.w is ignored for this instr +PATTERN : VV1 0x63 VL128 V66 V0F3A NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_ECX:w:SUPP +PATTERN : VV1 0x63 VL128 V66 V0F3A NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_ECX:w:SUPP + +# in 64b mode, vex.w changes the behavior for GPRs +PATTERN : VV1 0x63 VL128 V66 V0F3A NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_ECX:w:SUPP +PATTERN : VV1 0x63 VL128 V66 V0F3A NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_ECX:w:SUPP + +PATTERN : VV1 0x63 VL128 V66 V0F3A NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_RCX:w:SUPP +PATTERN : VV1 0x63 VL128 V66 V0F3A NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_RCX:w:SUPP +} + +{ +ICLASS : VPCMPESTRM +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : STTNI +EXTENSION : AVX +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] + +# outside of 64b mode, vex.w is ignored for this instr +PATTERN : VV1 0x60 VL128 V66 V0F3A NOVSR not64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_EDX:r:SUPP REG3=XED_REG_XMM0:w:dq:SUPP +PATTERN : VV1 0x60 VL128 V66 V0F3A NOVSR not64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_XMM0:w:dq:SUPP + +# in 64b mode, vex.w changes the behavior for GPRs +PATTERN : VV1 0x60 VL128 V66 V0F3A NOVSR mode64 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_EDX:r:SUPP REG3=XED_REG_XMM0:w:dq:SUPP +PATTERN : VV1 0x60 VL128 V66 V0F3A NOVSR mode64 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_EAX:r:SUPP REG3=XED_REG_EDX:r:SUPP REG4=XED_REG_XMM0:w:dq:SUPP + +PATTERN : VV1 0x60 VL128 V66 V0F3A NOVSR mode64 rexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_RAX:r:SUPP REG2=XED_REG_RDX:r:SUPP REG3=XED_REG_XMM0:w:dq:SUPP +PATTERN : VV1 0x60 VL128 V66 V0F3A NOVSR mode64 rexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_RAX:r:SUPP REG3=XED_REG_RDX:r:SUPP REG4=XED_REG_XMM0:w:dq:SUPP +} + +{ +ICLASS : VPCMPISTRM +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : STTNI +EXTENSION : AVX +FLAGS : MUST [ cf-mod zf-mod sf-mod of-mod af-0 pf-0 ] +PATTERN : VV1 0x62 VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():r:dq MEM0:r:dq IMM0:r:b REG1=XED_REG_XMM0:w:dq:SUPP +PATTERN : VV1 0x62 VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():r:dq REG1=XMM_B():r:dq IMM0:r:b REG2=XED_REG_XMM0:w:dq:SUPP +} +#################################################################################### + + + +#################################################################################### +{ +ICLASS : VMASKMOVDQU +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES : maskop fixed_base0 NOTSX +PATTERN : VV1 0xF7 V0F V66 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():r:dq:u8 REG1=XMM_B():r:dq:u8 MEM0:w:SUPP:dq:u8 BASE0=ArDI():r:SUPP SEG0=FINAL_DSEG():r:SUPP +} + +#################################################################################### +{ +ICLASS : VLDMXCSR +EXCEPTIONS: avx-type-5L +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR +PATTERN : VV1 0xAE VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[0b010] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:r:d REG0=XED_REG_MXCSR:w:SUPP +} +{ +ICLASS : VSTMXCSR +EXCEPTIONS: avx-type-5 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +ATTRIBUTES: MXCSR_RD +PATTERN : VV1 0xAE VL128 VNP V0F NOVSR MOD[mm] MOD!=3 REG[0b011] RM[nnn] no_refining_prefix MODRM() +OPERANDS : MEM0:w:d REG0=XED_REG_MXCSR:r:SUPP +} +####################################################################################### + +{ +ICLASS : VPBLENDVB +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX + +# W0 (modrm.rm memory op 2nd to last) +PATTERN : VV1 0x4C VL128 V66 V0F3A norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 MEM0:r:dq:i8 REG2=XMM_SE():r:dq:i8 + +PATTERN : VV1 0x4C VL128 V66 V0F3A norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:i8 REG1=XMM_N():r:dq:i8 REG2=XMM_B():r:dq:i8 REG3=XMM_SE():r:dq:i8 +} + +{ +ICLASS : VBLENDVPD +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX + +# W0 (modrm.rm memory op 2nd to last) +PATTERN : VV1 0x4B V66 V0F3A VL128 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 REG2=XMM_SE():r:dq:u64 + +PATTERN : VV1 0x4B V66 V0F3A VL128 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 REG3=XMM_SE():r:dq:u64 + +PATTERN : VV1 0x4B V66 V0F3A VL256 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 REG2=YMM_SE():r:qq:u64 + +PATTERN : VV1 0x4B V66 V0F3A VL256 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 REG3=YMM_SE():r:qq:u64 + +} + +{ +ICLASS : VBLENDVPS +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX + +# W0 (modrm.rm memory op 2nd to last) +PATTERN : VV1 0x4A V66 V0F3A VL128 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 REG2=XMM_SE():r:dq:u32 + +PATTERN : VV1 0x4A V66 V0F3A VL128 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 REG3=XMM_SE():r:dq:u32 + +PATTERN : VV1 0x4A V66 V0F3A VL256 norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 REG2=YMM_SE():r:qq:u32 + +PATTERN : VV1 0x4A V66 V0F3A VL256 norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 REG3=YMM_SE():r:qq:u32 + + +} + +####################################################################################### + + + +{ +ICLASS : VMOVNTDQA +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX + +PATTERN : VV1 0x2A V66 V0F38 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +} + + + + + +{ +ICLASS : VMOVNTDQ +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : VV1 0xE7 V66 V0F VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:i32 REG0=XMM_R():r:dq:i32 + +} +{ +ICLASS : VMOVNTPD +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : VV1 0x2B V66 V0F VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f64 REG0=XMM_R():r:dq:f64 + +} +{ +ICLASS : VMOVNTPS +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : VV1 0x2B VNP V0F VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:f32 REG0=XMM_R():r:dq:f32 + +} + + + +###FILE: ../xed/datafiles/avx/avx-movnt-store.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + + +{ +ICLASS : VMOVNTDQ +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : VV1 0xE7 V66 V0F VL256 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:i32 REG0=YMM_R():r:qq:i32 + +} +{ +ICLASS : VMOVNTPD +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : VV1 0x2B V66 V0F VL256 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f64 REG0=YMM_R():r:qq:f64 + +} +{ +ICLASS : VMOVNTPS +EXCEPTIONS: avx-type-1 +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX +PATTERN : VV1 0x2B VNP V0F VL256 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:f32 REG0=YMM_R():r:qq:f32 + +} + + + +###FILE: ../xed/datafiles/avx/avx-aes-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + +{ +ICLASS : VAESKEYGENASSIST +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AES +EXTENSION : AVXAES +PATTERN : VV1 0xDF VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq IMM0:r:b +PATTERN : VV1 0xDF VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq IMM0:r:b +} +{ +ICLASS : VAESENC +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AES +EXTENSION : AVXAES +PATTERN : VV1 0xDC V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq +PATTERN : VV1 0xDC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq +} +{ +ICLASS : VAESENCLAST +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AES +EXTENSION : AVXAES +PATTERN : VV1 0xDD V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq +PATTERN : VV1 0xDD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq +} +{ +ICLASS : VAESDEC +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AES +EXTENSION : AVXAES +PATTERN : VV1 0xDE V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq +PATTERN : VV1 0xDE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq +} +{ +ICLASS : VAESDECLAST +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AES +EXTENSION : AVXAES +PATTERN : VV1 0xDF V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq +PATTERN : VV1 0xDF V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq +} +{ +ICLASS : VAESIMC +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AES +EXTENSION : AVXAES +PATTERN : VV1 0xDB VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_B():r:dq +PATTERN : VV1 0xDB VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq MEM0:r:dq +} + + + +###FILE: ../xed/datafiles/avx/avx-pclmul-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: +{ +ICLASS : VPCLMULQDQ +EXCEPTIONS: avx-type-4 +CPL : 3 +CATEGORY : AVX +EXTENSION : AVX +PATTERN : VV1 0x44 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL128 UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u64 REG2=XMM_B():r:dq:u64 IMM0:r:b +PATTERN : VV1 0x44 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u128 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 IMM0:r:b +} + + +###FILE: ../xed/datafiles/ivbavx/fp16-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: +{ +ICLASS : VCVTPH2PS +COMMENT : UPCONVERT -- NO IMMEDIATE +CPL : 3 +CATEGORY : CONVERT +EXTENSION : F16C +ATTRIBUTES : MXCSR +EXCEPTIONS: avx-type-11 +# 128b form + +PATTERN : VV1 0x13 VL128 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() W0 +OPERANDS : REG0=XMM_R():w:dq:f32 MEM0:r:q:f16 + +PATTERN : VV1 0x13 VL128 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] W0 +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:q:f16 + + +# 256b form + +PATTERN : VV1 0x13 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() W0 +OPERANDS : REG0=YMM_R():w:qq:f32 MEM0:r:dq:f16 + +PATTERN : VV1 0x13 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] W0 +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=XMM_B():r:dq:f16 +} + + +{ +ICLASS : VCVTPS2PH +COMMENT : DOWNCONVERT -- HAS IMMEDIATE +CPL : 3 +CATEGORY : CONVERT +EXTENSION : F16C +ATTRIBUTES : MXCSR +EXCEPTIONS: avx-type-11 +# 128b imm8 form + +PATTERN : VV1 0x1D VL128 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() W0 +OPERANDS : MEM0:w:q:f16 REG0=XMM_R():r:dq:f32 IMM0:r:b + +PATTERN : VV1 0x1D VL128 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() W0 +OPERANDS : REG0=XMM_B():w:q:f16 REG1=XMM_R():r:dq:f32 IMM0:r:b + +# 256b imm8 form + +PATTERN : VV1 0x1D VL256 V66 V0F3A NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() W0 +OPERANDS : MEM0:w:dq:f16 REG0=YMM_R():r:qq:f32 IMM0:r:b + +PATTERN : VV1 0x1D VL256 V66 V0F3A NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() W0 +OPERANDS : REG0=XMM_B():w:dq:f16 REG1=YMM_R():r:qq:f32 IMM0:r:b + +} + + + +###FILE: ../xed/datafiles/avxhsw/gather-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + + +# DEST in MODRM.REG +# BASE in SIB.base +# INDEX in SIB.index +# MASK in VEX.VVVV -- NOTE mask is a signed integer!!! + +# VL = 128 VL = 256 +# dest/mask index memsz dest/mask index memsz +# qps/qd xmm xmm 2*32=64b xmm* ymm* 4*32=128b +# dps/dd xmm xmm 4*32=128b ymm ymm 8*32=256b +# dpd/dq xmm xmm 2*64=128b ymm* xmm* 4*64=256b +# qpd/qq xmm xmm 2*64=128b ymm ymm 4*64=256b + + + +{ +ICLASS : VGATHERDPD +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather DWORD_INDICES ELEMENT_SIZE_q SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x92 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=YMM_R():crw:qq:f64 MEM0:r:qq:f64 REG1=YMM_N():rw:qq:i64 +IFORM: VGATHERDPD_YMMf64_MEMqq_YMMi64_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x92 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:f64 MEM0:r:dq:f64 REG1=XMM_N():rw:dq:i64 +IFORM: VGATHERDPD_XMMf64_MEMdq_XMMi64_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} +{ +ICLASS : VGATHERDPS +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather DWORD_INDICES ELEMENT_SIZE_d SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x92 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_YMM() eanot16 +OPERANDS : REG0=YMM_R():crw:qq:f32 MEM0:r:qq:f32 REG1=YMM_N():rw:qq:i32 +IFORM: VGATHERDPS_YMMf32_MEMqq_YMMi32_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x92 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:f32 MEM0:r:dq:f32 REG1=XMM_N():rw:dq:i32 +IFORM: VGATHERDPS_XMMf32_MEMdq_XMMi32_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} +{ +ICLASS : VGATHERQPD +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather QWORD_INDICES ELEMENT_SIZE_q SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x93 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_YMM() eanot16 +OPERANDS : REG0=YMM_R():crw:qq:f64 MEM0:r:qq:f64 REG1=YMM_N():rw:qq:i64 +IFORM: VGATHERQPD_YMMf64_MEMqq_YMMi64_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x93 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:f64 MEM0:r:dq:f64 REG1=XMM_N():rw:dq:i64 +IFORM: VGATHERQPD_XMMf64_MEMdq_XMMi64_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} +{ +ICLASS : VGATHERQPS +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather QWORD_INDICES ELEMENT_SIZE_d SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x93 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_YMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:f32 MEM0:r:dq:f32 REG1=XMM_N():rw:dq:i32 +IFORM: VGATHERQPS_XMMf32_MEMdq_XMMi32_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x93 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:q:f32 MEM0:r:q:f32 REG1=XMM_N():rw:q:i32 +IFORM: VGATHERQPS_XMMf32_MEMq_XMMi32_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} + +{ +ICLASS : VPGATHERDQ +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather DWORD_INDICES ELEMENT_SIZE_q SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x90 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=YMM_R():crw:qq:u64 MEM0:r:qq:u64 REG1=YMM_N():rw:qq:i64 +IFORM: VPGATHERDQ_YMMu64_MEMqq_YMMi64_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x90 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:u64 MEM0:r:dq:u64 REG1=XMM_N():rw:dq:i64 +IFORM: VPGATHERDQ_XMMu64_MEMdq_XMMi64_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} +{ +ICLASS : VPGATHERDD +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather DWORD_INDICES ELEMENT_SIZE_d SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x90 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_YMM() eanot16 +OPERANDS : REG0=YMM_R():crw:qq:u32 MEM0:r:qq:u32 REG1=YMM_N():rw:qq:i32 +IFORM: VPGATHERDD_YMMu32_MEMqq_YMMi32_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x90 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:u32 MEM0:r:dq:u32 REG1=XMM_N():rw:dq:i32 +IFORM: VPGATHERDD_XMMu32_MEMdq_XMMi32_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} +{ +ICLASS : VPGATHERQQ +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather QWORD_INDICES ELEMENT_SIZE_q SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x91 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_YMM() eanot16 +OPERANDS : REG0=YMM_R():crw:qq:u64 MEM0:r:qq:u64 REG1=YMM_N():rw:qq:i64 +IFORM: VPGATHERQQ_YMMu64_MEMqq_YMMi64_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x91 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:u64 MEM0:r:dq:u64 REG1=XMM_N():rw:dq:i64 +IFORM: VPGATHERQQ_XMMu64_MEMdq_XMMi64_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} +{ +ICLASS : VPGATHERQD +CPL : 3 +CATEGORY : AVX2GATHER +EXTENSION : AVX2GATHER +ATTRIBUTES : gather QWORD_INDICES ELEMENT_SIZE_d SPECIAL_AGEN_REQUIRED +EXCEPTIONS: avx-type-12 + +# VL = 256 - when data/mask differ from index size see asterisks in above chart. +PATTERN : VV1 0x91 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_YMM() eanot16 +OPERANDS : REG0=XMM_R():crw:dq:u32 MEM0:r:dq:u32 REG1=XMM_N():rw:dq:i32 +IFORM: VPGATHERQD_XMMu32_MEMdq_XMMi32_VL256 + +# VL = 128 - index, mask and dest are all XMMs +PATTERN : VV1 0x91 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] RM=4 VMODRM_XMM() eanot16 +OPERANDS : REG0=XMM_R():crw:q:u32 MEM0:r:q:u32 REG1=XMM_N():rw:q:i32 +IFORM: VPGATHERQD_XMMu32_MEMq_XMMi32_VL128 + +COMMENT: mask reg is zeroized on normal termination. mask_sz=data_sz +} + + + +###FILE: ../xed/datafiles/avxhsw/hsw-int256-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + + +{ +ICLASS : VPABSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x1C VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 MEM0:r:qq:i8 + +PATTERN : VV1 0x1C VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_B():r:qq:i8 +} +{ +ICLASS : VPABSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x1D VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 MEM0:r:qq:i16 + +PATTERN : VV1 0x1D VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_B():r:qq:i16 +} +{ +ICLASS : VPABSD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x1E VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 MEM0:r:qq:i32 + +PATTERN : VV1 0x1E VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_B():r:qq:i32 +} +{ +ICLASS : VPHMINPOSUW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x41 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0x41 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_B():r:qq:u16 +} + + + + + + + + + + +{ +ICLASS : VPACKSSWB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x63 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x63 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPACKSSDW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x6B VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x6B VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} +{ +ICLASS : VPACKUSWB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x67 V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x67 V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPACKUSDW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x2B V66 V0F38 VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x2B V66 V0F38 VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} + +{ +ICLASS : VPSLLW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF1 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:dq:u64 + +PATTERN : VV1 0xF1 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=XMM_B():r:q:u64 +} +{ +ICLASS : VPSLLD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF2 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:dq:u64 + +PATTERN : VV1 0xF2 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=XMM_B():r:q:u64 +} +{ +ICLASS : VPSLLQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF3 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0xF3 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=XMM_B():r:q:u64 +} + +{ +ICLASS : VPSRLW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD1 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:dq:u64 + +PATTERN : VV1 0xD1 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=XMM_B():r:q:u64 +} +{ +ICLASS : VPSRLD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD2 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:dq:u64 + +PATTERN : VV1 0xD2 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=XMM_B():r:q:u64 +} +{ +ICLASS : VPSRLQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD3 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:dq:u64 + +PATTERN : VV1 0xD3 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=XMM_B():r:q:u64 +} + +{ +ICLASS : VPSRAW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE1 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:dq:u64 + +PATTERN : VV1 0xE1 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=XMM_B():r:q:u64 +} +{ +ICLASS : VPSRAD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE2 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:dq:u64 + +PATTERN : VV1 0xE2 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=XMM_B():r:q:u64 +} + + +{ +ICLASS : VPADDB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xFC VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0xFC VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPADDW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xFD VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xFD VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPADDD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xFE VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0xFE VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} +{ +ICLASS : VPADDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD4 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i64 MEM0:r:qq:i64 + +PATTERN : VV1 0xD4 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i64 REG2=YMM_B():r:qq:i64 +} + +{ +ICLASS : VPADDSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xEC VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0xEC VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPADDSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xED VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xED VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} + +{ +ICLASS : VPADDUSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xDC VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0xDC VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPADDUSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xDD VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0xDD VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} + +{ +ICLASS : VPAVGB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE0 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0xE0 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPAVGW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE3 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0xE3 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} + + +{ +ICLASS : VPCMPEQB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x74 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0x74 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPCMPEQW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x75 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0x75 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} +{ +ICLASS : VPCMPEQD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x76 V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x76 V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} +{ +ICLASS : VPCMPEQQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x29 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x29 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} + +{ +ICLASS : VPCMPGTB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x64 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0x64 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPCMPGTW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x65 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x65 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPCMPGTD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x66 V66 V0F VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x66 V66 V0F VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} +{ +ICLASS : VPCMPGTQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x37 V66 V0F38 VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i64 MEM0:r:qq:i64 + +PATTERN : VV1 0x37 V66 V0F38 VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i64 REG2=YMM_B():r:qq:i64 +} + + +{ +ICLASS : VPHADDW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x01 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x01 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPHADDD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x02 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x02 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} +{ +ICLASS : VPHADDSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x03 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x03 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPHSUBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x05 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x05 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPHSUBD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x06 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x06 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} +{ +ICLASS : VPHSUBSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x07 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x07 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} + +{ +ICLASS : VPMADDWD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF5 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xF5 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPMADDUBSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x04 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:u8 MEM0:r:qq:i8 + +PATTERN : VV1 0x04 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:i8 +} + +{ +ICLASS : VPMAXSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x3C VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0x3C VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPMAXSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xEE VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xEE VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPMAXSD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x3D VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x3D VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} + +{ +ICLASS : VPMAXUB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xDE VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0xDE VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPMAXUW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x3E VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0x3E VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} +{ +ICLASS : VPMAXUD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x3F VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x3F VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} + +{ +ICLASS : VPMINSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x38 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0x38 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPMINSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xEA VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xEA VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPMINSD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x39 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x39 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} + +{ +ICLASS : VPMINUB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xDA VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0xDA VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPMINUW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x3A V66 V0F38 VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0x3A V66 V0F38 VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} +{ +ICLASS : VPMINUD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x3B V66 V0F38 VL256 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x3B V66 V0F38 VL256 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} + +{ +ICLASS : VPMULHUW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE4 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0xE4 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} +{ +ICLASS : VPMULHRSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x0B VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x0B VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} + +{ +ICLASS : VPMULHW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE5 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xE5 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPMULLW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD5 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xD5 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPMULLD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x40 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x40 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} + +{ +ICLASS : VPMULUDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF4 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0xF4 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} +{ +ICLASS : VPMULDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x28 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x28 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} + +{ +ICLASS : VPSADBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF6 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0xF6 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPSHUFB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x00 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0x00 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} + +{ +ICLASS : VPSIGNB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x08 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0x08 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPSIGNW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x09 VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0x09 VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPSIGND +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x0A VL256 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0x0A VL256 V66 V0F38 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} + + +{ +ICLASS : VPSUBSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE8 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0xE8 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPSUBSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xE9 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xE9 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} + +{ +ICLASS : VPSUBUSB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD8 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0xD8 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPSUBUSW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xD9 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0xD9 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} + +{ +ICLASS : VPSUBB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF8 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 MEM0:r:qq:i8 + +PATTERN : VV1 0xF8 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i8 REG1=YMM_N():r:qq:i8 REG2=YMM_B():r:qq:i8 +} +{ +ICLASS : VPSUBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xF9 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 MEM0:r:qq:i16 + +PATTERN : VV1 0xF9 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=YMM_N():r:qq:i16 REG2=YMM_B():r:qq:i16 +} +{ +ICLASS : VPSUBD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xFA VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 MEM0:r:qq:i32 + +PATTERN : VV1 0xFA VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=YMM_N():r:qq:i32 REG2=YMM_B():r:qq:i32 +} +{ +ICLASS : VPSUBQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xFB VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i64 MEM0:r:qq:i64 + +PATTERN : VV1 0xFB VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=YMM_N():r:qq:i64 REG2=YMM_B():r:qq:i64 +} + +{ +ICLASS : VPUNPCKHBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x68 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0x68 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPUNPCKHWD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x69 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0x69 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} +{ +ICLASS : VPUNPCKHDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x6A VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x6A VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} +{ +ICLASS : VPUNPCKHQDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x6D VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x6D VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} + +{ +ICLASS : VPUNPCKLBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x60 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 + +PATTERN : VV1 0x60 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 +} +{ +ICLASS : VPUNPCKLWD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x61 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 + +PATTERN : VV1 0x61 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 +} +{ +ICLASS : VPUNPCKLDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x62 VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x62 VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} +{ +ICLASS : VPUNPCKLQDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x6C VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 + +PATTERN : VV1 0x6C VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 REG2=YMM_B():r:qq:u64 +} + + +{ +ICLASS : VPALIGNR +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x0F VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 IMM0:r:b + +PATTERN : VV1 0x0F VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 IMM0:r:b +} +{ +ICLASS : VPBLENDW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x0E VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 MEM0:r:qq:u16 IMM0:r:b + +PATTERN : VV1 0x0E VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u16 REG2=YMM_B():r:qq:u16 IMM0:r:b +} +{ +ICLASS : VMPSADBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x42 VL256 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 IMM0:r:b + +PATTERN : VV1 0x42 VL256 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 IMM0:r:b +} + + + +{ +ICLASS : VPOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xEB VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 MEM0:r:qq:u256 + +PATTERN : VV1 0xEB VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 REG2=YMM_B():r:qq:u256 +} +{ +ICLASS : VPAND +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xDB VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 MEM0:r:qq:u256 + +PATTERN : VV1 0xDB VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 REG2=YMM_B():r:qq:u256 +} +{ +ICLASS : VPANDN +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xDF VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 MEM0:r:qq:u256 + +PATTERN : VV1 0xDF VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 REG2=YMM_B():r:qq:u256 +} +{ +ICLASS : VPXOR +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0xEF VL256 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 MEM0:r:qq:u256 + +PATTERN : VV1 0xEF VL256 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u256 REG1=YMM_N():r:qq:u256 REG2=YMM_B():r:qq:u256 +} + + + +{ +ICLASS : VPBLENDVB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x4C VL256 V66 V0F3A norexw_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 MEM0:r:qq:u8 REG2=YMM_SE():r:qq:u8 + +PATTERN : VV1 0x4C VL256 V66 V0F3A norexw_prefix MOD[0b11] MOD=3 REG[rrr] RM[nnn] SE_IMM8() +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=YMM_N():r:qq:u8 REG2=YMM_B():r:qq:u8 REG3=YMM_SE():r:qq:u8 +} + + + + +{ +ICLASS : VPMOVMSKB +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0xD7 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPR32_R():w:d:u32 REG1=YMM_B():r:qq:i8 +} + + + +{ +ICLASS : VPSHUFD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x70 VL256 V66 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u32 MEM0:r:qq:u32 IMM0:r:b + +PATTERN : VV1 0x70 VL256 V66 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_B():r:qq:u32 IMM0:r:b +} +{ +ICLASS : VPSHUFHW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x70 VL256 VF3 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 MEM0:r:qq:u16 IMM0:r:b + +PATTERN : VV1 0x70 VL256 VF3 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_B():r:qq:u16 IMM0:r:b +} +{ +ICLASS : VPSHUFLW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x70 VL256 VF2 V0F NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 MEM0:r:qq:u16 IMM0:r:b + +PATTERN : VV1 0x70 VL256 VF2 V0F NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=YMM_B():r:qq:u16 IMM0:r:b +} + + + +{ +ICLASS : VPSRLDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x73 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b011] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u128 REG1=YMM_B():r:qq:u128 IMM0:r:b # NDD +} +{ +ICLASS : VPSLLDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x73 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b111] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u128 REG1=YMM_B():r:qq:u128 IMM0:r:b # NDD +} + +############################################## + +{ +ICLASS : VPSLLW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x71 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u16 REG1=YMM_B():r:qq:u16 IMM0:r:b # NDD +} +{ +ICLASS : VPSLLD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x72 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u32 REG1=YMM_B():r:qq:u32 IMM0:r:b #NDD +} +{ +ICLASS : VPSLLQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x73 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b110] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u64 REG1=YMM_B():r:qq:u64 IMM0:r:b # NDD +} + +{ +ICLASS : VPSRAW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x71 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:i16 REG1=YMM_B():r:qq:i16 IMM0:r:b # NDD +} +{ +ICLASS : VPSRAD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x72 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b100] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:i32 REG1=YMM_B():r:qq:i32 IMM0:r:b # NDD +} +{ +ICLASS : VPSRLW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x71 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u16 REG1=YMM_B():r:qq:u16 IMM0:r:b # NDD +} +{ +ICLASS : VPSRLD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 + +PATTERN : VV1 0x72 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u32 REG1=YMM_B():r:qq:u32 IMM0:r:b # NDD +} +{ +ICLASS : VPSRLQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-7 +PATTERN : VV1 0x73 VL256 V66 V0F MOD[0b11] MOD=3 REG[0b010] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_N():w:qq:u64 REG1=YMM_B():r:qq:u64 IMM0:r:b # NDD +} + + + +############################################################################ +# SX versions +############################################################################ + +{ +ICLASS : VPMOVSXBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x20 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i16 REG1=XMM_B():r:dq:i8 +PATTERN : VV1 0x20 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i16 MEM0:r:dq:i8 +} + +############################################################################ +{ +ICLASS : VPMOVSXBD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x21 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=XMM_B():r:q:i8 +PATTERN : VV1 0x21 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 MEM0:r:q:i8 +} +############################################################################ +{ +ICLASS : VPMOVSXBQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x22 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=XMM_B():r:d:i8 +PATTERN : VV1 0x22 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 MEM0:r:d:i8 +} +############################################################################ +{ +ICLASS : VPMOVSXWD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x23 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i32 REG1=XMM_B():r:dq:i16 +PATTERN : VV1 0x23 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i32 MEM0:r:dq:i16 +} +############################################################################ +{ +ICLASS : VPMOVSXWQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x24 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=XMM_B():r:q:i16 +PATTERN : VV1 0x24 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 MEM0:r:q:i16 +} +############################################################################ +{ +ICLASS : VPMOVSXDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x25 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:i64 REG1=XMM_B():r:dq:i32 +PATTERN : VV1 0x25 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:i64 MEM0:r:dq:i32 +} + + + + + +############################################################################ +# ZX versions +############################################################################ + +{ +ICLASS : VPMOVZXBW +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x30 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=XMM_B():r:dq:u8 +PATTERN : VV1 0x30 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 MEM0:r:dq:u8 +} + +############################################################################ +{ +ICLASS : VPMOVZXBD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x31 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=XMM_B():r:q:u8 +PATTERN : VV1 0x31 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 MEM0:r:q:u8 +} +############################################################################ +{ +ICLASS : VPMOVZXBQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x32 V66 V0F38 VL256 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=XMM_B():r:d:u8 +PATTERN : VV1 0x32 V66 V0F38 VL256 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 MEM0:r:d:u8 +} +############################################################################ +{ +ICLASS : VPMOVZXWD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x33 V66 V0F38 VL256 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=XMM_B():r:dq:u16 +PATTERN : VV1 0x33 V66 V0F38 VL256 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 MEM0:r:dq:u16 +} +############################################################################ +{ +ICLASS : VPMOVZXWQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x34 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=XMM_B():r:q:u16 +PATTERN : VV1 0x34 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 MEM0:r:q:u16 +} +############################################################################ +{ +ICLASS : VPMOVZXDQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-5 +PATTERN : VV1 0x35 VL256 V66 V0F38 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=XMM_B():r:dq:u32 +PATTERN : VV1 0x35 VL256 V66 V0F38 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 MEM0:r:dq:u32 +} + + +################################## +# newer stuff 2009-08-14 + + +{ +ICLASS : VINSERTI128 +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 +PATTERN : VV1 0x38 VL256 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u128 REG1=YMM_N():r:qq:u128 MEM0:r:dq:u128 IMM0:r:b + +PATTERN : VV1 0x38 VL256 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u128 REG1=YMM_N():r:qq:u128 REG2=XMM_B():r:dq:u128 IMM0:r:b +} + + + + + +{ +ICLASS : VEXTRACTI128 +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 +PATTERN : VV1 0x39 VL256 V66 V0F3A W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : MEM0:w:dq:u128 REG0=YMM_R():r:qq:u128 IMM0:r:b + +PATTERN : VV1 0x39 VL256 V66 V0F3A W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_B():w:dq:u128 REG1=YMM_R():r:qq:u128 IMM0:r:b +} + + +########################################################################### + +### # VPMASKMOVD masked load and store +### # VPMASKMOVQ masked load and store + + + + +{ +ICLASS : VPMASKMOVD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +ATTRIBUTES: maskop +EXCEPTIONS: avx-type-6 +PATTERN : VV1 0x8C VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 + + +PATTERN : VV1 0x8C VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 +} +{ +ICLASS : VPMASKMOVQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +ATTRIBUTES: maskop +EXCEPTIONS: avx-type-6 + +PATTERN : VV1 0x8C VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_N():r:dq:u64 MEM0:r:dq:u64 + + +PATTERN : VV1 0x8C VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_N():r:qq:u64 MEM0:r:qq:u64 +} + +{ +ICLASS : VPMASKMOVD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +ATTRIBUTES: maskop +EXCEPTIONS: avx-type-6 +PATTERN : VV1 0x8E VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:u32 REG0=XMM_N():r:dq:u32 REG1=XMM_R():r:dq:u32 + + +PATTERN : VV1 0x8E VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:u32 REG0=YMM_N():r:qq:u32 REG1=YMM_R():r:qq:u32 +} +{ +ICLASS : VPMASKMOVQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +ATTRIBUTES: maskop +EXCEPTIONS: avx-type-6 +PATTERN : VV1 0x8E VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:dq:u64 REG0=XMM_N():r:dq:u64 REG1=XMM_R():r:dq:u64 + + +PATTERN : VV1 0x8E VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : MEM0:w:qq:u64 REG0=YMM_N():r:qq:u64 REG1=YMM_R():r:qq:u64 +} +########################################################################### + + +### # VPERM2I128 256b only + +{ +ICLASS : VPERM2I128 +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 # Note: vperm2f128 is type 4... + +PATTERN : VV1 0x46 VL256 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u128 REG1=YMM_N():r:qq:u128 MEM0:r:qq:u128 IMM0:r:b + +PATTERN : VV1 0x46 VL256 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u128 REG1=YMM_N():r:qq:u128 REG2=YMM_B():r:qq:u128 IMM0:r:b +} + + +{ +ICLASS : VPERMQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 + +PATTERN : VV1 0x00 VL256 V0F3A V66 W1 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u64 MEM0:r:qq:u64 IMM0:r:b + +PATTERN : VV1 0x00 VL256 V0F3A V66 W1 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=YMM_B():r:qq:u64 IMM0:r:b +} + +{ +ICLASS : VPERMPD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 + +PATTERN : VV1 0x01 VL256 V0F3A V66 W1 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 MEM0:r:qq:f64 IMM0:r:b + +PATTERN : VV1 0x01 VL256 V0F3A V66 W1 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=YMM_B():r:qq:f64 IMM0:r:b +} + + + + + + + + +{ +ICLASS : VPERMD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 + + +PATTERN : VV1 0x36 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 + +PATTERN : VV1 0x36 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 +} +{ +ICLASS : VPERMPS +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 + +PATTERN : VV1 0x16 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 + +PATTERN : VV1 0x16 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} + + +########################################################################### + + +### # VPBLENDD imm 128/256 + + + +{ +ICLASS : VPBLENDD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 + +PATTERN : VV1 0x02 VL128 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 MEM0:r:dq:u32 IMM0:r:b + +PATTERN : VV1 0x02 VL128 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_N():r:dq:u32 REG2=XMM_B():r:dq:u32 IMM0:r:b + + +PATTERN : VV1 0x02 VL256 V66 V0F3A W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 MEM0:r:qq:u32 IMM0:r:b + +PATTERN : VV1 0x02 VL256 V66 V0F3A W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=YMM_N():r:qq:u32 REG2=YMM_B():r:qq:u32 IMM0:r:b +} + + + +########################################################################### + +{ +ICLASS : VPBROADCASTB +COMMENT : gpr 128/256 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 + +PATTERN : VV1 0x78 VL128 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u8 MEM0:r:b:u8 EMX_BROADCAST_1TO16_8 + +PATTERN : VV1 0x78 VL128 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u8 REG1=XMM_B():r:b:u8 EMX_BROADCAST_1TO16_8 + +PATTERN : VV1 0x78 VL256 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u8 MEM0:r:b:u8 EMX_BROADCAST_1TO32_8 + +PATTERN : VV1 0x78 VL256 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u8 REG1=XMM_B():r:b:u8 EMX_BROADCAST_1TO32_8 + +} + + + + +{ +ICLASS : VPBROADCASTW +COMMENT : gpr 128/256 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 + +PATTERN : VV1 0x79 VL128 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u16 MEM0:r:w:u16 EMX_BROADCAST_1TO8_16 + +PATTERN : VV1 0x79 VL128 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u16 REG1=XMM_B():r:w:u16 EMX_BROADCAST_1TO8_16 + +PATTERN : VV1 0x79 VL256 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u16 MEM0:r:w:u16 EMX_BROADCAST_1TO16_16 + +PATTERN : VV1 0x79 VL256 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u16 REG1=XMM_B():r:w:u16 EMX_BROADCAST_1TO16_16 +} + + + + +### # VPBROADCASTD gpr/mem + + +{ +ICLASS : VPBROADCASTD +COMMENT : gpr 128/256 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 + +PATTERN : VV1 0x58 VL128 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u32 MEM0:r:d:u32 EMX_BROADCAST_1TO4_32 + +PATTERN : VV1 0x58 VL128 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u32 REG1=XMM_B():r:d:u32 EMX_BROADCAST_1TO4_32 + + +PATTERN : VV1 0x58 VL256 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u32 MEM0:r:d:u32 EMX_BROADCAST_1TO8_32 + +PATTERN : VV1 0x58 VL256 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u32 REG1=XMM_B():r:d:u32 EMX_BROADCAST_1TO8_32 +} + + + +### # VPBROADCASTQ gpr/mem + +{ +ICLASS : VPBROADCASTQ +COMMENT : gpr 128/256 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 + +PATTERN : VV1 0x59 VL128 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq:u64 MEM0:r:q:u64 EMX_BROADCAST_1TO2_64 + +PATTERN : VV1 0x59 VL128 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:u64 REG1=XMM_B():r:q:u64 EMX_BROADCAST_1TO2_64 + +PATTERN : VV1 0x59 VL256 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u64 MEM0:r:q:u64 EMX_BROADCAST_1TO4_64 + +PATTERN : VV1 0x59 VL256 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:u64 REG1=XMM_B():r:q:u64 EMX_BROADCAST_1TO4_64 +} + + + + + + +{ +ICLASS : VBROADCASTSS +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 +COMMENT : xmm,xmm and ymm,xmm +PATTERN : VV1 0x18 VL128 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq:f32 REG1=XMM_B():r:dq:f32 EMX_BROADCAST_1TO4_32 + +PATTERN : VV1 0x18 VL256 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f32 REG1=XMM_B():r:dq:f32 EMX_BROADCAST_1TO8_32 +} + + +{ +ICLASS : VBROADCASTSD +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 +COMMENT : ymm,xmm only +PATTERN : VV1 0x19 VL256 V66 V0F38 W0 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq:f64 REG1=XMM_B():r:dq:f64 EMX_BROADCAST_1TO4_64 +} + + + +{ +ICLASS : VBROADCASTI128 +CPL : 3 +CATEGORY : BROADCAST +EXTENSION : AVX2 +EXCEPTIONS: avx-type-6 +COMMENT : memonly 256 -- FIXME: make types u64 like in AVX1? +PATTERN : VV1 0x5A VL256 V66 V0F38 W0 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq:u128 MEM0:r:dq:u128 EMX_BROADCAST_2TO4_64 +} + + +###FILE: ../xed/datafiles/avxhsw/hsw-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : TZCNT +CPL : 3 +CATEGORY : BMI1 +EXTENSION : BMI1 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-mod ] +PATTERN : 0x0F 0xBC refining_f3 TZCNT=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w MEM0:r:v + +PATTERN : 0x0F 0xBC refining_f3 TZCNT=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w REG1=GPRv_B():r +} + +{ +ICLASS : BSF +VERSION : 1 +COMMENT : AMD reused 0FBC for TZCNT and made BSF not have a refining prefix. This version replaces the normal version of BSF +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-u ] + +PATTERN : 0x0F 0xBC not_refining_f3 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBC not_refining_f3 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r + +PATTERN : 0x0F 0xBC refining_f3 TZCNT=0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBC refining_f3 TZCNT=0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} + +{ +ICLASS : INVPCID +CPL : 0 +CATEGORY : MISC +EXTENSION : INVPCID +ISA_SET : INVPCID +ATTRIBUTES : RING0 NOTSX +PATTERN : 0x0F 0x38 0x82 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode64 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR64_R():r MEM0:r:dq +PATTERN : 0x0F 0x38 0x82 osz_refining_prefix MOD[mm] MOD!=3 REG[rrr] RM[nnn] REFINING66() mode32 MODRM() CR_WIDTH() +OPERANDS : REG0=GPR32_R():r MEM0:r:dq +COMMENT : +} + + +###FILE: ../xed/datafiles/avxhsw/hsw-lzcnt.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +# LZCNT reg16, reg/mem16 F30FBD /r +# LZCNT reg32, reg/mem32 F30FBD /r +# LZCNT reg64, reg/mem64 F30FBD /r + +{ +ICLASS : LZCNT +# This replace the AMD version in LZCNT builds +VERSION : 2 +CPL : 3 +CATEGORY : LZCNT +EXTENSION : LZCNT +COMMENT: : These next one WAS introduced first by AMD circa SSE4a. +FLAGS : MUST [ cf-mod zf-mod of-u af-u pf-u sf-u ] +PATTERN : 0x0F 0xBD f3_refining_prefix LZCNT=1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():w:v MEM0:r:v +PATTERN : 0x0F 0xBD f3_refining_prefix LZCNT=1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():w:v REG1=GPRv_B():r:v +} + + +{ +ICLASS : BSR +VERSION : 2 +COMMENT : AMD reused 0FBD for LZCNT and made BSR not have a refining prefix. This version replaces the normal version of BSR +CPL : 3 +CATEGORY : BITBYTE +EXTENSION : BASE +ISA_SET : I386 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-u ] +PATTERN : 0x0F 0xBD not_refining_f3 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBD not_refining_f3 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r + +PATTERN : 0x0F 0xBD refining_f3 LZCNT=0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=GPRv_R():cw MEM0:r:v + +PATTERN : 0x0F 0xBD refining_f3 LZCNT=0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=GPRv_R():cw REG1=GPRv_B():r +} + + +###FILE: ../xed/datafiles/avxhsw/hsw-vex-gpr-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +AVX_INSTRUCTIONS():: + +{ +ICLASS : PDEP +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-mod ] + +#32b +PATTERN : VV1 0xF5 V0F38 VF2 not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d MEM0:r:d + +PATTERN : VV1 0xF5 V0F38 VF2 W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d MEM0:r:d + +PATTERN : VV1 0xF5 V0F38 VF2 not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d REG2=VGPR32_B():r:d + +PATTERN : VV1 0xF5 V0F38 VF2 W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d REG2=VGPR32_B():r:d + +# 64b +PATTERN : VV1 0xF5 V0F38 VF2 W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():rw:q REG1=VGPR64_N():r:q MEM0:r:q + +PATTERN : VV1 0xF5 V0F38 VF2 W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():rw:q REG1=VGPR64_N():r:q REG2=VGPR64_B():r:q +} + +{ +ICLASS : PEXT +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-mod ] + + +#32b +PATTERN : VV1 0xF5 V0F38 VF3 not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d MEM0:r:d + +PATTERN : VV1 0xF5 V0F38 VF3 W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d MEM0:r:d + +PATTERN : VV1 0xF5 V0F38 VF3 not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d REG2=VGPR32_B():r:d + +PATTERN : VV1 0xF5 V0F38 VF3 W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d REG2=VGPR32_B():r:d + +# 64b +PATTERN : VV1 0xF5 V0F38 VF3 W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():rw:q REG1=VGPR64_N():r:q MEM0:r:q + +PATTERN : VV1 0xF5 V0F38 VF3 W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():rw:q REG1=VGPR64_N():r:q REG2=VGPR64_B():r:q +} + + +{ +ICLASS : ANDN +CPL : 3 +CATEGORY : BMI1 +EXTENSION : BMI1 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-0 ] + +# 32b +PATTERN : VV1 0xF2 V0F38 VNP not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d MEM0:r:d + +PATTERN : VV1 0xF2 V0F38 VNP W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d MEM0:r:d + +PATTERN : VV1 0xF2 V0F38 VNP not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d REG2=VGPR32_B():r:d + +PATTERN : VV1 0xF2 V0F38 VNP W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():rw:d REG1=VGPR32_N():r:d REG2=VGPR32_B():r:d + +# 64b +PATTERN : VV1 0xF2 V0F38 VNP W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():rw:q REG1=VGPR64_N():r:q MEM0:r:q + +PATTERN : VV1 0xF2 V0F38 VNP W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():rw:q REG1=VGPR64_N():r:q REG2=VGPR64_B():r:q +} + +{ +ICLASS : BLSR +CPL : 3 +CATEGORY : BMI1 +EXTENSION : BMI1 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-u cf-mod ] + +# 32b +PATTERN : VV1 0xF3 V0F38 VNP not64 VL128 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_N():w:d MEM0:r:d + +PATTERN : VV1 0xF3 V0F38 VNP W0 mode64 VL128 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_N():w:d MEM0:r:d + +PATTERN : VV1 0xF3 V0F38 VNP not64 VL128 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=VGPR32_N():w:d REG1=VGPR32_B():r:d + +PATTERN : VV1 0xF3 V0F38 VNP W0 mode64 VL128 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=VGPR32_N():w:d REG1=VGPR32_B():r:d + +# 64b +PATTERN : VV1 0xF3 V0F38 VNP W1 VL128 mode64 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_N():w:q MEM0:r:q + +PATTERN : VV1 0xF3 V0F38 VNP W1 VL128 mode64 MOD[0b11] MOD=3 REG[0b001] RM[nnn] +OPERANDS : REG0=VGPR64_N():w:q REG1=VGPR64_B():r:q + +} + +{ +ICLASS : BLSMSK +CPL : 3 +CATEGORY : BMI1 +EXTENSION : BMI1 +FLAGS : MUST [ of-0 sf-mod zf-0 af-u pf-u cf-mod ] + +#32b +PATTERN : VV1 0xF3 V0F38 VNP not64 VL128 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_N():w:d MEM0:r:d + +PATTERN : VV1 0xF3 V0F38 VNP W0 mode64 VL128 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_N():w:d MEM0:r:d + +PATTERN : VV1 0xF3 V0F38 VNP not64 VL128 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=VGPR32_N():w:d REG1=VGPR32_B():r:d + +PATTERN : VV1 0xF3 V0F38 VNP W0 mode64 VL128 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=VGPR32_N():w:d REG1=VGPR32_B():r:d + +#64b +PATTERN : VV1 0xF3 V0F38 VNP W1 VL128 mode64 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_N():w:q MEM0:r:q + +PATTERN : VV1 0xF3 V0F38 VNP W1 VL128 mode64 MOD[0b11] MOD=3 REG[0b010] RM[nnn] +OPERANDS : REG0=VGPR64_N():w:q REG1=VGPR64_B():r:q +} + +{ +ICLASS : BLSI +CPL : 3 +CATEGORY : BMI1 +EXTENSION : BMI1 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-u cf-0 ] + +# 32b +PATTERN : VV1 0xF3 V0F38 VNP not64 VL128 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_N():w:d MEM0:r:d + +PATTERN : VV1 0xF3 V0F38 VNP W0 mode64 VL128 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_N():w:d MEM0:r:d + +PATTERN : VV1 0xF3 V0F38 VNP not64 VL128 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=VGPR32_N():w:d REG1=VGPR32_B():r:d + +PATTERN : VV1 0xF3 V0F38 VNP W0 mode64 VL128 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=VGPR32_N():w:d REG1=VGPR32_B():r:d + +# 64b +PATTERN : VV1 0xF3 V0F38 VNP W1 VL128 mode64 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_N():w:q MEM0:r:q + +PATTERN : VV1 0xF3 V0F38 VNP W1 VL128 mode64 MOD[0b11] MOD=3 REG[0b011] RM[nnn] +OPERANDS : REG0=VGPR64_N():w:q REG1=VGPR64_B():r:q +} + +{ +ICLASS : BZHI +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 +FLAGS : MUST [ of-0 sf-mod zf-mod af-u pf-mod cf-mod ] + +# 32b +PATTERN : VV1 0xF5 V0F38 VNP not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF5 V0F38 VNP W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF5 V0F38 VNP not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +PATTERN : VV1 0xF5 V0F38 VNP W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +# 64b +PATTERN : VV1 0xF5 V0F38 VNP W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():w:q MEM0:r:q REG1=VGPR64_N():r:q + +PATTERN : VV1 0xF5 V0F38 VNP W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_B():r:q REG2=VGPR64_N():r:q +} + +{ +ICLASS : BEXTR +CPL : 3 +CATEGORY : BMI1 +EXTENSION : BMI1 +FLAGS : MUST [ of-u sf-u zf-mod af-u pf-u cf-u ] + +# 32b +PATTERN : VV1 0xF7 V0F38 VNP not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VNP W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VNP not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VNP W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +# 64b +PATTERN : VV1 0xF7 V0F38 VNP W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():w:q MEM0:r:q REG1=VGPR64_N():r:q + +PATTERN : VV1 0xF7 V0F38 VNP W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_B():r:q REG2=VGPR64_N():r:q +} + + + +{ +ICLASS : SHLX +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 + +# 32b +PATTERN : VV1 0xF7 V0F38 V66 not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 V66 W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 V66 not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 V66 W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +# 64b +PATTERN : VV1 0xF7 V0F38 V66 W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():w:q MEM0:r:q REG1=VGPR64_N():r:q + +PATTERN : VV1 0xF7 V0F38 V66 W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_B():r:q REG2=VGPR64_N():r:q +} +{ +ICLASS : SARX +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 + +# 32b +PATTERN : VV1 0xF7 V0F38 VF3 not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VF3 W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VF3 not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VF3 W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +# 64b +PATTERN : VV1 0xF7 V0F38 VF3 W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():w:q MEM0:r:q REG1=VGPR64_N():r:q + +PATTERN : VV1 0xF7 V0F38 VF3 W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_B():r:q REG2=VGPR64_N():r:q +} +{ +ICLASS : SHRX +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 + +# 32b +PATTERN : VV1 0xF7 V0F38 VF2 not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VF2 W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d REG1=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VF2 not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +PATTERN : VV1 0xF7 V0F38 VF2 W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d REG2=VGPR32_N():r:d + +# 64b +PATTERN : VV1 0xF7 V0F38 VF2 W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():w:q MEM0:r:q REG1=VGPR64_N():r:q + +PATTERN : VV1 0xF7 V0F38 VF2 W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_B():r:q REG2=VGPR64_N():r:q +} + + + +{ +ICLASS : MULX +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 + +# reg:w vvvv:w rm:r rdx:r +# 32b +PATTERN : VV1 0xF6 VF2 V0F38 not64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_N():w:d REG2=VGPR32_B():r:d REG3=XED_REG_EDX:r:SUPP + +PATTERN : VV1 0xF6 VF2 V0F38 W0 mode64 VL128 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_N():w:d REG2=VGPR32_B():r:d REG3=XED_REG_EDX:r:SUPP +PATTERN : VV1 0xF6 VF2 V0F38 not64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_N():w:d MEM0:r:d REG2=XED_REG_EDX:r:SUPP + +PATTERN : VV1 0xF6 VF2 V0F38 W0 mode64 VL128 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_N():w:d MEM0:r:d REG2=XED_REG_EDX:r:SUPP + +# 64b +PATTERN : VV1 0xF6 VF2 V0F38 W1 VL128 mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_N():w:q REG2=VGPR64_B():r:q REG3=XED_REG_RDX:r:SUPP +PATTERN : VV1 0xF6 VF2 V0F38 W1 VL128 mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_N():w:q MEM0:r:q REG2=XED_REG_RDX:r:SUPP +} + +{ +ICLASS : RORX +CPL : 3 +CATEGORY : BMI2 +EXTENSION : BMI2 + +# reg(w) rm(r) / vvvv must be 1111. / 2010-01-08 CART change + +# 32b +PATTERN : VV1 0xF0 VF2 V0F3A not64 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d IMM0:r:b + +PATTERN : VV1 0xF0 VF2 V0F3A W0 mode64 VL128 NOVSR MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=VGPR32_R():w:d REG1=VGPR32_B():r:d IMM0:r:b +PATTERN : VV1 0xF0 VF2 V0F3A not64 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d IMM0:r:b + +PATTERN : VV1 0xF0 VF2 V0F3A W0 mode64 VL128 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=VGPR32_R():w:d MEM0:r:d IMM0:r:b + +# 64b +PATTERN : VV1 0xF0 VF2 V0F3A W1 VL128 NOVSR mode64 MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM8() +OPERANDS : REG0=VGPR64_R():w:q REG1=VGPR64_B():r:q IMM0:r:b +PATTERN : VV1 0xF0 VF2 V0F3A W1 VL128 NOVSR mode64 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM8() +OPERANDS : REG0=VGPR64_R():w:q MEM0:r:q IMM0:r:b +} + + +###FILE: ../xed/datafiles/avxhsw/hsw-vshift-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + + + + +{ +ICLASS : VPSLLVD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x47 VL128 V0F38 V66 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x47 VL128 V0F38 V66 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x47 VL256 V0F38 V66 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x47 VL256 V0F38 V66 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq + +} +{ +ICLASS : VPSLLVQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x47 VL128 V0F38 V66 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x47 VL128 V0F38 V66 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x47 VL256 V0F38 V66 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x47 VL256 V0F38 V66 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq + +} + +{ +ICLASS : VPSRLVD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x45 VL128 V0F38 V66 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x45 VL128 V0F38 V66 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x45 VL256 V0F38 V66 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x45 VL256 V0F38 V66 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq + +} +{ +ICLASS : VPSRLVQ +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x45 VL128 V0F38 V66 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x45 VL128 V0F38 V66 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x45 VL256 V0F38 V66 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x45 VL256 V0F38 V66 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq + +} + +{ +ICLASS : VPSRAVD +CPL : 3 +CATEGORY : AVX2 +EXTENSION : AVX2 +EXCEPTIONS: avx-type-4 +PATTERN : VV1 0x46 VL128 V0F38 V66 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq MEM0:r:dq + +PATTERN : VV1 0x46 VL128 V0F38 V66 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():w:dq REG1=XMM_N():r:dq REG2=XMM_B():r:dq + +PATTERN : VV1 0x46 VL256 V0F38 V66 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq MEM0:r:qq + +PATTERN : VV1 0x46 VL256 V0F38 V66 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():w:qq REG1=YMM_N():r:qq REG2=YMM_B():r:qq + +} + + + + +###FILE: ../xed/datafiles/avxhsw/movnt-load-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + + +{ +ICLASS : VMOVNTDQA +CPL : 3 +CATEGORY : DATAXFER +EXTENSION : AVX2 +EXCEPTIONS: avx-type-1 +ATTRIBUTES : REQUIRES_ALIGNMENT NOTSX + +PATTERN : VV1 0x2A V66 V0F38 VL256 NOVSR MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():w:qq MEM0:r:qq +} + + + + + +###FILE: ../xed/datafiles/avxhsw/vmfunc-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : VMFUNC +CPL : 3 +CATEGORY : VTX +EXTENSION : VMFUNC +ISA_SET : VMFUNC +ATTRIBUTES : +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b010] RM[0b100] no_refining_prefix +OPERANDS : +} + + +###FILE: ../xed/datafiles/avxhsw/rtm.xed + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : XBEGIN +CPL : 3 +CATEGORY : COND_BR +EXTENSION : RTM +COMMENT : Not always a branch. If aborts, then branches & eax is written + +PATTERN : 0xC7 MOD[0b11] MOD=3 REG[0b111] RM[0b000] BRDISPz() +OPERANDS : RELBR:r:z REG0=rIP():rw:SUPP REG1=XED_REG_EAX:cw:SUPP +} + +{ +ICLASS : XEND +CPL : 3 +CATEGORY : COND_BR +EXTENSION : RTM +COMMENT : Transaction end. may branch +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b010] RM[0b101] no_refining_prefix +OPERANDS : +} + +{ +ICLASS : XABORT +CPL : 3 +CATEGORY : UNCOND_BR +EXTENSION : RTM +COMMENT : Transaction abort. Branches. NOP outside of transaction; Thus eax is rcw. +PATTERN : 0xC6 MOD[0b11] MOD=3 REG[0b111] RM[0b000] UIMM8() +OPERANDS : REG0=XED_REG_EAX:rcw:SUPP IMM0:r:b +} + + +{ +ICLASS : XTEST +CPL : 3 +CATEGORY : LOGICAL +EXTENSION : RTM +COMMENT : test if in RTM transaction mode +FLAGS : MUST [ of-0 sf-0 zf-mod af-0 pf-0 cf-0 ] +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b010] RM[0b110] no_refining_prefix +OPERANDS : +} + + +###FILE: ../xed/datafiles/avx/avx-fma-isa.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +AVX_INSTRUCTIONS():: + +# Issues: encoder is at a loss for vmaddps xmm0,xmm0,xmm0,xmm0. +# Encoder must enforce equality between two parameters. Never had to do this before. +# Extra check? +# Decoder must rip off suffixes _DDMR, _DDRM, _DRMD in disassembly (eventually) +############################################################################################# +# Operand orders: +# A = B * C + D +#Type 1) reg0 reg0 mem/reg1 reg2 DDMR 312 or 132 +#Type 2) reg0 reg0 reg1 mem/reg2 DDRM 123 or 213 +#Type 3) reg0 reg1 mem/reg2 reg0 DRMD 321 or 231 + +# dst is in MODRM.REG +# regsrc is in VEX.vvvv +# memop is in MODRM.RM +############################################################################################ + + + + + + + + + + + + +########################################################## + + + + + + + + + + + + +################################################################## + + + + + + + + + + + + + +################################################################## +{ +ICLASS : VFMADD132PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x98 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0x98 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0x98 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0x98 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMADD132PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x98 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0x98 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0x98 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0x98 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMADD132SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x99 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0x99 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VFMADD132SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x99 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0x99 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +{ +ICLASS : VFMADD213PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xA8 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xA8 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xA8 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xA8 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMADD213PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xA8 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xA8 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0xA8 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xA8 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMADD213SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xA9 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xA9 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFMADD213SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xA9 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xA9 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VFMADD231PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xB8 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xB8 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xB8 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xB8 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 + +} +{ +ICLASS : VFMADD231PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xB8 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xB8 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +# R/M 256 +PATTERN : VV1 0xB8 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xB8 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 + +} +{ +ICLASS : VFMADD231SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xB9 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xB9 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFMADD231SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xB9 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xB9 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + + +################################################### +{ +ICLASS : VFMADDSUB132PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x96 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0x96 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0x96 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0x96 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMADDSUB213PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xA6 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xA6 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xA6 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xA6 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMADDSUB231PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xB6 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xB6 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xB6 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xB6 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 + +} + +{ +ICLASS : VFMADDSUB132PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x96 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0x96 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0x96 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0x96 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMADDSUB213PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xA6 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xA6 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0xA6 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xA6 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMADDSUB231PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xB6 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xB6 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +# R/M 256 +PATTERN : VV1 0xB6 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xB6 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 + +} +################################################### + +{ +ICLASS : VFMSUBADD132PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x97 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0x97 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0x97 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0x97 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMSUBADD213PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xA7 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xA7 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xA7 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xA7 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMSUBADD231PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xB7 VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xB7 VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xB7 VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xB7 VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 + +} + +{ +ICLASS : VFMSUBADD132PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x97 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0x97 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0x97 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0x97 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMSUBADD213PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xA7 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xA7 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0xA7 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xA7 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMSUBADD231PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xB7 VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xB7 VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +# R/M 256 +PATTERN : VV1 0xB7 VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xB7 VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 + +} + + +################################################### + +{ +ICLASS : VFMSUB132PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x9A VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0x9A VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0x9A VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0x9A VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMSUB132PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x9A VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0x9A VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0x9A VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0x9A VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMSUB132SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x9B V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0x9B V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VFMSUB132SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x9B V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0x9B V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +{ +ICLASS : VFMSUB213PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xAA VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xAA VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xAA VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xAA VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFMSUB213PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xAA VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xAA VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0xAA VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xAA VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFMSUB213SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xAB V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xAB V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFMSUB213SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xAB V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xAB V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VFMSUB231PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xBA VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xBA VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xBA VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xBA VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 + +} +{ +ICLASS : VFMSUB231PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xBA VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xBA VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +# R/M 256 +PATTERN : VV1 0xBA VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xBA VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 + +} +{ +ICLASS : VFMSUB231SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xBB V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xBB V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFMSUB231SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xBB V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xBB V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +################################################### + + +{ +ICLASS : VFNMADD132PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x9C VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0x9C VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0x9C VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0x9C VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFNMADD132PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x9C VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0x9C VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0x9C VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0x9C VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFNMADD132SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x9D V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0x9D V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VFNMADD132SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x9D V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0x9D V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +{ +ICLASS : VFNMADD213PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xAC VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xAC VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xAC VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xAC VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFNMADD213PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xAC VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xAC VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0xAC VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xAC VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFNMADD213SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xAD V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xAD V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFNMADD213SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xAD V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xAD V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VFNMADD231PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xBC VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xBC VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xBC VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xBC VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 + +} +{ +ICLASS : VFNMADD231PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xBC VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xBC VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +# R/M 256 +PATTERN : VV1 0xBC VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xBC VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 + +} +{ +ICLASS : VFNMADD231SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xBD V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xBD V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFNMADD231SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xBD V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xBD V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +################################################### + + +{ +ICLASS : VFNMSUB132PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x9E VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0x9E VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0x9E VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0x9E VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFNMSUB132PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0x9E VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0x9E VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0x9E VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0x9E VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFNMSUB132SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x9F V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0x9F V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 +} +{ +ICLASS : VFNMSUB132SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0x9F V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0x9F V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +{ +ICLASS : VFNMSUB213PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xAE VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xAE VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xAE VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xAE VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 +} +{ +ICLASS : VFNMSUB213PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xAE VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xAE VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + + +# R/M 256 +PATTERN : VV1 0xAE VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xAE VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 +} +{ +ICLASS : VFNMSUB213SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xAF V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xAF V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFNMSUB213SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xAF V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xAF V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 +} + +{ +ICLASS : VFNMSUB231PD +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xBE VL128 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 MEM0:r:dq:f64 +# R/R 128 +PATTERN : VV1 0xBE VL128 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:dq:f64 REG2=XMM_B():r:dq:f64 + + +# R/M 256 +PATTERN : VV1 0xBE VL256 V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 MEM0:r:qq:f64 +# R/R 256 +PATTERN : VV1 0xBE VL256 V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f64 REG1=YMM_N():r:qq:f64 REG2=YMM_B():r:qq:f64 + +} +{ +ICLASS : VFNMSUB231PS +EXCEPTIONS: avx-type-2 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR +# R/M 128 +PATTERN : VV1 0xBE VL128 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 MEM0:r:dq:f32 +# R/R 128 +PATTERN : VV1 0xBE VL128 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:dq:f32 REG2=XMM_B():r:dq:f32 + +# R/M 256 +PATTERN : VV1 0xBE VL256 V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 MEM0:r:qq:f32 +# R/R 256 +PATTERN : VV1 0xBE VL256 V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=YMM_R():rw:qq:f32 REG1=YMM_N():r:qq:f32 REG2=YMM_B():r:qq:f32 + +} +{ +ICLASS : VFNMSUB231SD +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xBF V66 V0F38 W1 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 MEM0:r:q:f64 +# R/R 128 +PATTERN : VV1 0xBF V66 V0F38 W1 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f64 REG1=XMM_N():r:q:f64 REG2=XMM_B():r:q:f64 + +} +{ +ICLASS : VFNMSUB231SS +EXCEPTIONS: avx-type-3 +CPL : 3 +CATEGORY : VFMA +EXTENSION : FMA +ATTRIBUTES: MXCSR simd_scalar +# R/M 128 +PATTERN : VV1 0xBF V66 V0F38 W0 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 MEM0:r:d:f32 +# R/R 128 +PATTERN : VV1 0xBF V66 V0F38 W0 MOD[0b11] MOD=3 REG[rrr] RM[nnn] +OPERANDS : REG0=XMM_R():rw:dq:f32 REG1=XMM_N():r:d:f32 REG2=XMM_B():r:d:f32 + +} + +################################################### + + + + + + +###FILE: ../xed/datafiles/bdw/lin2.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : ADCX +CPL : 3 +CATEGORY : BDW +EXTENSION : BDW +FLAGS : MUST [ cf-tst cf-mod ] +# reg:rw rm:r +# 32b +PATTERN : 0x0F 0x38 0xF6 MOD[0b11] MOD=3 REG[rrr] RM[nnn] osz_refining_prefix W0 IMMUNE66() +OPERANDS : REG0=GPR32_R():rw:d REG1=GPR32_B():r:d +PATTERN : 0x0F 0x38 0xF6 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix W0 IMMUNE66() +OPERANDS : REG0=GPR32_R():rw:d MEM0:r:d + +# 64b +PATTERN : 0x0F 0x38 0xF6 MOD[0b11] MOD=3 REG[rrr] RM[nnn] osz_refining_prefix W1 IMMUNE66() +OPERANDS : REG0=GPR64_R():rw:q REG1=GPR64_B():r:q +PATTERN : 0x0F 0x38 0xF6 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() osz_refining_prefix W1 IMMUNE66() +OPERANDS : REG0=GPR64_R():rw:q MEM0:r:q +} + + + +{ +ICLASS : ADOX +CPL : 3 +CATEGORY : BDW +EXTENSION : BDW +FLAGS : MUST [ of-tst of-mod ] +# reg:rw rm:r +# 32b +PATTERN : 0x0F 0x38 0xF6 MOD[0b11] MOD=3 REG[rrr] RM[nnn] refining_f3 W0 IMMUNE66() +OPERANDS : REG0=GPR32_R():rw:d REG1=GPR32_B():r:d +PATTERN : 0x0F 0x38 0xF6 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() refining_f3 W0 IMMUNE66() +OPERANDS : REG0=GPR32_R():rw:d MEM0:r:d + +# 64b +PATTERN : 0x0F 0x38 0xF6 MOD[0b11] MOD=3 REG[rrr] RM[nnn] refining_f3 W1 IMMUNE66() +OPERANDS : REG0=GPR64_R():rw:q REG1=GPR64_B():r:q +PATTERN : 0x0F 0x38 0xF6 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() refining_f3 W1 IMMUNE66() +OPERANDS : REG0=GPR64_R():rw:q MEM0:r:q +} + + + +###FILE: ../xed/datafiles/bdw/rdseed.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +INSTRUCTIONS():: + +{ +ICLASS : RDSEED +CPL : 3 +CATEGORY : RDSEED +EXTENSION : RDSEED +ISA_SET : RDSEED +FLAGS : MUST [ cf-mod zf-0 of-0 af-0 pf-0 sf-0 ] +PATTERN : 0x0F 0xC7 MOD[0b11] MOD=3 REG[0b111] RM[nnn] not_refining +OPERANDS : REG0=GPRv_B():w +} + + + +###FILE: ../xed/datafiles/bdw/smap.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: + +{ +ICLASS : CLAC +CPL : 0 +CATEGORY : SMAP +EXTENSION : SMAP +FLAGS : MUST [ ac-0 ] +# 0F 01 CA = 1100_1010 = 11_001_010 +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b001] RM[0b010] no_refining_prefix +OPERANDS : +} + +{ +ICLASS : STAC +CPL : 0 +CATEGORY : SMAP +EXTENSION : SMAP +FLAGS : MUST [ ac-1 ] +# 0F 01 CB = 1100_1011 = 11_001_011 +PATTERN : 0x0F 0x01 MOD[0b11] MOD=3 REG[0b001] RM[0b011] no_refining_prefix +OPERANDS : +} + + + +###FILE: ../xed/datafiles/sgx/sgx-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: + +# Both read EAX +# Both may read or write or r/w RBX, RCX, RDX +# ENCLU 0f 01 D7 +# D7 = 1101 0111 + +# ENCLS 0f 01 CF +# CF = 1100_1111 + + + +{ +ICLASS: ENCLU +CPL: 3 +CATEGORY: SGX +EXTENSION: SGX +ISA_SET: SGX +COMMENT: May set flags +PATTERN: 0x0F 0x01 MOD[0b11] MOD=3 REG[0b010] RM[0b111] no_refining_prefix +OPERANDS: REG0=XED_REG_EAX:r:SUPP \ + REG1=XED_REG_RBX:crw:SUPP \ + REG2=XED_REG_RCX:crw:SUPP \ + REG3=XED_REG_RDX:crw:SUPP +} + +{ + +ICLASS: ENCLS +CPL: 0 +CATEGORY: SGX +EXTENSION: SGX +ISA_SET: SGX +COMMENT: May set flags +PATTERN: 0x0F 0x01 MOD[0b11] MOD=3 REG[0b001] RM[0b111] no_refining_prefix +OPERANDS: REG0=XED_REG_EAX:r:SUPP \ + REG1=XED_REG_RBX:crw:SUPP \ + REG2=XED_REG_RCX:crw:SUPP \ + REG3=XED_REG_RDX:crw:SUPP + +} + + +###FILE: ../xed/datafiles/pku/pku-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + + +INSTRUCTIONS():: + +{ +ICLASS: RDPKRU +CPL: 3 +CATEGORY: PKU +EXTENSION: PKU +ISA_SET: PKU +ATTRIBUTES: +PATTERN: 0x0F 0x01 MOD[0b11] MOD=3 REG[0b101] RM[0b110] +OPERANDS: REG0=XED_REG_EDX:w:SUPP REG1=XED_REG_EAX:w:SUPP REG2=XED_REG_ECX:r:SUPP +} + + +{ +ICLASS: WRPKRU +CPL: 3 +CATEGORY: PKU +EXTENSION: PKU +ISA_SET: PKU +ATTRIBUTES: +PATTERN: 0x0F 0x01 MOD[0b11] MOD=3 REG[0b101] RM[0b111] +OPERANDS: REG0=XED_REG_EDX:r:SUPP REG1=XED_REG_EAX:r:SUPP REG2=XED_REG_ECX:r:SUPP +} + + + +###FILE: ../xed/datafiles/memory/clwb.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: + +{ +ICLASS: CLWB +CPL: 3 +CATEGORY: CLWB +EXTENSION: CLWB +ISA_SET: CLWB +ATTRIBUTES: PREFETCH # check TSX-friendlyness +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b110] RM[nnn] osz_refining_prefix REFINING66() MODRM() +OPERANDS : MEM0:r:mprefetch +} + + + + +###FILE: ../xed/datafiles/memory/clflushopt.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: + +{ +ICLASS: CLFLUSHOPT +CPL: 3 +CATEGORY: CLFLUSHOPT +EXTENSION: CLFLUSHOPT +ISA_SET: CLFLUSHOPT +ATTRIBUTES: PREFETCH # check TSX-friendlyness +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b111] RM[nnn] osz_refining_prefix REFINING66() MODRM() +OPERANDS : MEM0:r:mprefetch +} + + + + +###FILE: ../xed/datafiles/pt/intelpt-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + + +INSTRUCTIONS():: +{ +ICLASS : PTWRITE +CPL : 3 +CATEGORY : PT +EXTENSION : PT +PATTERN : 0x0F 0xAE MOD[0b11] MOD=3 REG[0b100] RM[nnn] f3_refining_prefix no66_prefix +OPERANDS : REG0=GPRy_B():r +PATTERN : 0x0F 0xAE MOD[mm] MOD!=3 REG[0b100] RM[nnn] f3_refining_prefix no66_prefix MODRM() +OPERANDS : MEM0:r:y + +} + + +###FILE: ../xed/datafiles/knl/knl-fixup.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL + +INSTRUCTIONS():: +UDELETE : PREFETCH_RESERVED_0F0Dr2 + + +###FILE: ../xed/datafiles/knl/knl-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VEXP2PD (VEXP2PD-512-1) +{ +ICLASS: VEXP2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VEXP2PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER +} + +{ +ICLASS: VEXP2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC8 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VEXP2PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER +} + +{ +ICLASS: VEXP2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VEXP2PD_ZMMf64_MASKmskw_MEMf64_AVX512ER +} + + +# EMITTING VEXP2PS (VEXP2PS-512-1) +{ +ICLASS: VEXP2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VEXP2PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER +} + +{ +ICLASS: VEXP2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC8 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VEXP2PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER +} + +{ +ICLASS: VEXP2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VEXP2PS_ZMMf32_MASKmskw_MEMf32_AVX512ER +} + + +# EMITTING VGATHERPF0DPD (VGATHERPF0DPD-512-1) +{ +ICLASS: VGATHERPF0DPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b001] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF0DPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF0DPS (VGATHERPF0DPS-512-1) +{ +ICLASS: VGATHERPF0DPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b001] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF0DPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF0QPD (VGATHERPF0QPD-512-1) +{ +ICLASS: VGATHERPF0QPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b001] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF0QPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF0QPS (VGATHERPF0QPS-512-1) +{ +ICLASS: VGATHERPF0QPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b001] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF0QPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF1DPD (VGATHERPF1DPD-512-1) +{ +ICLASS: VGATHERPF1DPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF1DPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF1DPS (VGATHERPF1DPS-512-1) +{ +ICLASS: VGATHERPF1DPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF1DPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF1QPD (VGATHERPF1QPD-512-1) +{ +ICLASS: VGATHERPF1QPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF1QPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VGATHERPF1QPS (VGATHERPF1QPS-512-1) +{ +ICLASS: VGATHERPF1QPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VGATHERPF1QPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VRCP28PD (VRCP28PD-512-1) +{ +ICLASS: VRCP28PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VRCP28PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER +} + +{ +ICLASS: VRCP28PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCA V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VRCP28PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER +} + +{ +ICLASS: VRCP28PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xCA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRCP28PD_ZMMf64_MASKmskw_MEMf64_AVX512ER +} + + +# EMITTING VRCP28PS (VRCP28PS-512-1) +{ +ICLASS: VRCP28PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VRCP28PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER +} + +{ +ICLASS: VRCP28PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCA V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VRCP28PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER +} + +{ +ICLASS: VRCP28PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xCA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRCP28PS_ZMMf32_MASKmskw_MEMf32_AVX512ER +} + + +# EMITTING VRCP28SD (VRCP28SD-128-1) +{ +ICLASS: VRCP28SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCB V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VRCP28SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512ER +} + +{ +ICLASS: VRCP28SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCB V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VRCP28SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512ER +} + +{ +ICLASS: VRCP28SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xCB V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VRCP28SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512ER +} + + +# EMITTING VRCP28SS (VRCP28SS-128-1) +{ +ICLASS: VRCP28SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCB V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VRCP28SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512ER +} + +{ +ICLASS: VRCP28SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCB V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VRCP28SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512ER +} + +{ +ICLASS: VRCP28SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xCB V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VRCP28SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512ER +} + + +# EMITTING VRSQRT28PD (VRSQRT28PD-512-1) +{ +ICLASS: VRSQRT28PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VRSQRT28PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER +} + +{ +ICLASS: VRSQRT28PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCC V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VRSQRT28PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER +} + +{ +ICLASS: VRSQRT28PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xCC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRSQRT28PD_ZMMf64_MASKmskw_MEMf64_AVX512ER +} + + +# EMITTING VRSQRT28PS (VRSQRT28PS-512-1) +{ +ICLASS: VRSQRT28PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VRSQRT28PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER +} + +{ +ICLASS: VRSQRT28PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xCC V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VRSQRT28PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER +} + +{ +ICLASS: VRSQRT28PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xCC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRSQRT28PS_ZMMf32_MASKmskw_MEMf32_AVX512ER +} + + +# EMITTING VRSQRT28SD (VRSQRT28SD-128-1) +{ +ICLASS: VRSQRT28SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCD V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VRSQRT28SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512ER +} + +{ +ICLASS: VRSQRT28SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCD V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VRSQRT28SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512ER +} + +{ +ICLASS: VRSQRT28SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xCD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VRSQRT28SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512ER +} + + +# EMITTING VRSQRT28SS (VRSQRT28SS-128-1) +{ +ICLASS: VRSQRT28SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCD V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VRSQRT28SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512ER +} + +{ +ICLASS: VRSQRT28SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xCD V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VRSQRT28SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512ER +} + +{ +ICLASS: VRSQRT28SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512ER_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xCD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VRSQRT28SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512ER +} + + +# EMITTING VSCATTERPF0DPD (VSCATTERPF0DPD-512-1) +{ +ICLASS: VSCATTERPF0DPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b101] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF0DPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF0DPS (VSCATTERPF0DPS-512-1) +{ +ICLASS: VSCATTERPF0DPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b101] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF0DPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF0QPD (VSCATTERPF0QPD-512-1) +{ +ICLASS: VSCATTERPF0QPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b101] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF0QPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF0QPS (VSCATTERPF0QPS-512-1) +{ +ICLASS: VSCATTERPF0QPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b101] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF0QPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF1DPD (VSCATTERPF1DPD-512-1) +{ +ICLASS: VSCATTERPF1DPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF1DPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF1DPS (VSCATTERPF1DPS-512-1) +{ +ICLASS: VSCATTERPF1DPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC6 V66 V0F38 MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF1DPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF1QPD (VSCATTERPF1QPD-512-1) +{ +ICLASS: VSCATTERPF1QPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f64 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF1QPD_MEMf64_MASKmskw_AVX512PF_VL512 +} + + +# EMITTING VSCATTERPF1QPS (VSCATTERPF1QPS-512-1) +{ +ICLASS: VSCATTERPF1QPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512PF_512 +EXCEPTIONS: AVX512-E12NP +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER PREFETCH MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xC7 V66 V0F38 MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:r:b:f32 REG0=MASKNOT0():rw:mskw +IFORM: VSCATTERPF1QPS_MEMf32_MASKmskw_AVX512PF_VL512 +} + + +INSTRUCTIONS():: +# EMITTING PREFETCHWT1 (PREFETCHWT1-N/A-1) +{ +ICLASS: PREFETCHWT1 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: PREFETCHWT1 +ISA_SET: PREFETCHWT1 +REAL_OPCODE: Y +ATTRIBUTES: PREFETCH +PATTERN: 0x0F 0x0D MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() +OPERANDS: MEM0:r:b:u8 +IFORM: PREFETCHWT1_MEMu8 +} + + + + +###FILE: ../xed/datafiles/4fmaps-512/4fmaps-512-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING V4FMADDPS (V4FMADDPS-512-1) +{ +ICLASS: V4FMADDPS +CPL: 3 +CATEGORY: AVX512_4FMAPS +EXTENSION: AVX512EVEX +ISA_SET: AVX512_4FMAPS_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MULTISOURCE4 DISP8_TUPLE1_4X MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A VF2 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_TUPLE1_4X() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32:MULTISOURCE4 MEM0:r:dq:f32 +IFORM: V4FMADDPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING V4FMADDSS (V4FMADDSS-128-1) +{ +ICLASS: V4FMADDSS +CPL: 3 +CATEGORY: AVX512_4FMAPS +EXTENSION: AVX512EVEX +ISA_SET: AVX512_4FMAPS_SCALAR +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE1_4X MXCSR MULTISOURCE4 MEMORY_FAULT_SUPPRESSION MASKOP_EVEX SIMD_SCALAR +PATTERN: EVV 0x9B VF2 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_TUPLE1_4X() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32:MULTISOURCE4 MEM0:r:dq:f32 +IFORM: V4FMADDSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING V4FNMADDPS (V4FNMADDPS-512-1) +{ +ICLASS: V4FNMADDPS +CPL: 3 +CATEGORY: AVX512_4FMAPS +EXTENSION: AVX512EVEX +ISA_SET: AVX512_4FMAPS_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MULTISOURCE4 DISP8_TUPLE1_4X MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA VF2 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_TUPLE1_4X() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32:MULTISOURCE4 MEM0:r:dq:f32 +IFORM: V4FNMADDPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING V4FNMADDSS (V4FNMADDSS-128-1) +{ +ICLASS: V4FNMADDSS +CPL: 3 +CATEGORY: AVX512_4FMAPS +EXTENSION: AVX512EVEX +ISA_SET: AVX512_4FMAPS_SCALAR +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE1_4X MXCSR MULTISOURCE4 MEMORY_FAULT_SUPPRESSION MASKOP_EVEX SIMD_SCALAR +PATTERN: EVV 0xAB VF2 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_TUPLE1_4X() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32:MULTISOURCE4 MEM0:r:dq:f32 +IFORM: V4FNMADDSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + + + +###FILE: ../xed/datafiles/4vnniw-512/4vnniw-512-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VP4DPWSSD (VP4DPWSSD-512-1) +{ +ICLASS: VP4DPWSSD +CPL: 3 +CATEGORY: AVX512_4VNNIW +EXTENSION: AVX512EVEX +ISA_SET: AVX512_4VNNIW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MULTISOURCE4 DISP8_TUPLE1_4X MASKOP_EVEX +PATTERN: EVV 0x52 VF2 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_TUPLE1_4X() +OPERANDS: REG0=ZMM_R3():rw:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16:MULTISOURCE4 MEM0:r:dq:u32 +IFORM: VP4DPWSSD_ZMMi32_MASKmskw_ZMMi16_MEMu32_AVX512 +} + + +# EMITTING VP4DPWSSDS (VP4DPWSSDS-512-1) +{ +ICLASS: VP4DPWSSDS +CPL: 3 +CATEGORY: AVX512_4VNNIW +EXTENSION: AVX512EVEX +ISA_SET: AVX512_4VNNIW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MULTISOURCE4 DISP8_TUPLE1_4X MASKOP_EVEX +PATTERN: EVV 0x53 VF2 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_TUPLE1_4X() +OPERANDS: REG0=ZMM_R3():rw:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16:MULTISOURCE4 MEM0:r:dq:u32 +IFORM: VP4DPWSSDS_ZMMi32_MASKmskw_ZMMi16_MEMu32_AVX512 +} + + + + +###FILE: ../xed/datafiles/vpopcntdq-512/vpopcntdq-512-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VPOPCNTD (VPOPCNTD-512-1) +{ +ICLASS: VPOPCNTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512_VPOPCNTDQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VPOPCNTD_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + +{ +ICLASS: VPOPCNTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512_VPOPCNTDQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPOPCNTD_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPOPCNTQ (VPOPCNTQ-512-1) +{ +ICLASS: VPOPCNTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512_VPOPCNTDQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VPOPCNTQ_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + +{ +ICLASS: VPOPCNTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512_VPOPCNTDQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPOPCNTQ_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + + + +###FILE: ../xed/datafiles/avx512f/avx512-foundation-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VADDPD (VADDPD-512-1) +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VADDPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VADDPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x58 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VADDPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VADDPS (VADDPS-512-1) +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VADDPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VADDPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x58 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VADDPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VADDSD (VADDSD-128-1) +{ +ICLASS: VADDSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x58 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VADDSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VADDSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x58 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VADDSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VADDSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x58 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VADDSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VADDSS (VADDSS-128-1) +{ +ICLASS: VADDSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x58 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VADDSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VADDSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x58 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VADDSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VADDSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x58 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VADDSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VALIGND (VALIGND-512-1) +{ +ICLASS: VALIGND +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x03 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VALIGND_ZMMu32_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VALIGND +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x03 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VALIGND_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VALIGNQ (VALIGNQ-512-1) +{ +ICLASS: VALIGNQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x03 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VALIGNQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VALIGNQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x03 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VALIGNQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VBLENDMPD (VBLENDMPD-512-1) +{ +ICLASS: VBLENDMPD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x65 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VBLENDMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VBLENDMPD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x65 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VBLENDMPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VBLENDMPS (VBLENDMPS-512-1) +{ +ICLASS: VBLENDMPS +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x65 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VBLENDMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VBLENDMPS +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x65 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VBLENDMPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF32X4 (VBROADCASTF32X4-512-1) +{ +ICLASS: VBROADCASTF32X4 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x1A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 EMX_BROADCAST_4TO16_32 +IFORM: VBROADCASTF32X4_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF64X4 (VBROADCASTF64X4-512-1) +{ +ICLASS: VBROADCASTF64X4 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x1B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f64 EMX_BROADCAST_4TO8_64 +IFORM: VBROADCASTF64X4_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VBROADCASTI32X4 (VBROADCASTI32X4-512-1) +{ +ICLASS: VBROADCASTI32X4 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x5A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u32 EMX_BROADCAST_4TO16_32 +IFORM: VBROADCASTI32X4_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VBROADCASTI64X4 (VBROADCASTI64X4-512-1) +{ +ICLASS: VBROADCASTI64X4 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x5B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u64 EMX_BROADCAST_4TO8_64 +IFORM: VBROADCASTI64X4_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VBROADCASTSD (VBROADCASTSD-512-1) +{ +ICLASS: VBROADCASTSD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x19 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE1() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f64 EMX_BROADCAST_1TO8_64 +IFORM: VBROADCASTSD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VBROADCASTSD (VBROADCASTSD-512-2) +{ +ICLASS: VBROADCASTSD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 EMX_BROADCAST_1TO8_64 +IFORM: VBROADCASTSD_ZMMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VBROADCASTSS (VBROADCASTSS-512-1) +{ +ICLASS: VBROADCASTSS +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x18 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:f32 EMX_BROADCAST_1TO16_32 +IFORM: VBROADCASTSS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTSS (VBROADCASTSS-512-2) +{ +ICLASS: VBROADCASTSS +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 EMX_BROADCAST_1TO16_32 +IFORM: VBROADCASTSS_ZMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VCMPPD (VCMPPD-512-1) +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw:TXT=SAESTR REG1=MASK1():r:mskw REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VCMPPS (VCMPPS-512-1) +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw:TXT=SAESTR REG1=MASK1():r:mskw REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC2 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VCMPSD (VCMPSD-128-1) +{ +ICLASS: VCMPSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xC2 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VCMPSD_MASKmskw_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VCMPSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xC2 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw:TXT=SAESTR REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VCMPSD_MASKmskw_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VCMPSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xC2 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 IMM0:r:b +IFORM: VCMPSD_MASKmskw_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VCMPSS (VCMPSS-128-1) +{ +ICLASS: VCMPSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xC2 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VCMPSS_MASKmskw_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCMPSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xC2 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw:TXT=SAESTR REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VCMPSS_MASKmskw_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCMPSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xC2 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VCMPSS_MASKmskw_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VCOMISD (VCOMISD-128-1) +{ +ICLASS: VCOMISD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f64 REG1=XMM_B3():r:dq:f64 +IFORM: VCOMISD_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VCOMISD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2F V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f64:TXT=SAESTR REG1=XMM_B3():r:dq:f64 +IFORM: VCOMISD_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VCOMISD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_SCALAR +PATTERN: EVV 0x2F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():r:dq:f64 MEM0:r:q:f64 +IFORM: VCOMISD_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VCOMISS (VCOMISS-128-1) +{ +ICLASS: VCOMISS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2F VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f32 REG1=XMM_B3():r:dq:f32 +IFORM: VCOMISS_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VCOMISS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2F VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f32:TXT=SAESTR REG1=XMM_B3():r:dq:f32 +IFORM: VCOMISS_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VCOMISS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_SCALAR +PATTERN: EVV 0x2F VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():r:dq:f32 MEM0:r:d:f32 +IFORM: VCOMISS_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VCOMPRESSPD (VCOMPRESSPD-512-1) +{ +ICLASS: VCOMPRESSPD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:f64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf64 +IFORM: VCOMPRESSPD_MEMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VCOMPRESSPD (VCOMPRESSPD-512-2) +{ +ICLASS: VCOMPRESSPD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf64 +IFORM: VCOMPRESSPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VCOMPRESSPS (VCOMPRESSPS-512-1) +{ +ICLASS: VCOMPRESSPS +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:f32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf32 +IFORM: VCOMPRESSPS_MEMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VCOMPRESSPS (VCOMPRESSPS-512-2) +{ +ICLASS: VCOMPRESSPS +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 +IFORM: VCOMPRESSPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VCVTDQ2PD (VCVTDQ2PD-512-1) +{ +ICLASS: VCVTDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i32 +IFORM: VCVTDQ2PD_ZMMf64_MASKmskw_YMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VCVTDQ2PD_ZMMf64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VCVTDQ2PS (VCVTDQ2PS-512-1) +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zi32 +IFORM: VCVTDQ2PS_ZMMf32_MASKmskw_ZMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zi32 +IFORM: VCVTDQ2PS_ZMMf32_MASKmskw_ZMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VCVTDQ2PS_ZMMf32_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VCVTPD2DQ (VCVTPD2DQ-512-1) +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2DQ_YMMi32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2DQ_YMMi32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2DQ_YMMi32_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VCVTPD2PS (VCVTPD2PS-512-1) +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2PS_YMMf32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2PS_YMMf32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2PS_YMMf32_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VCVTPD2UDQ (VCVTPD2UDQ-512-1) +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2UDQ_YMMu32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2UDQ_YMMu32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2UDQ_YMMu32_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VCVTPH2PS (VCVTPH2PS-512-1) +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x13 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f16 +IFORM: VCVTPH2PS_ZMMf32_MASKmskw_YMMf16_AVX512 +} + +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x13 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f16 +IFORM: VCVTPH2PS_ZMMf32_MASKmskw_YMMf16_AVX512 +} + +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x13 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f16 +IFORM: VCVTPH2PS_ZMMf32_MASKmskw_MEMf16_AVX512 +} + + +# EMITTING VCVTPS2DQ (VCVTPS2DQ-512-1) +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTPS2DQ_ZMMi32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTPS2DQ_ZMMi32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2DQ_ZMMi32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2PD (VCVTPS2PD-512-1) +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2PD_ZMMf64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2PD_ZMMf64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x5A VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2PD_ZMMf64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2PH (VCVTPS2PH-512-1) +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_B3():w:qq:f16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VCVTPS2PH_YMMf16_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_B3():w:qq:f16:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VCVTPS2PH_YMMf16_MASKmskw_ZMMf32_IMM8_AVX512 +} + + +# EMITTING VCVTPS2PH (VCVTPS2PH-512-2) +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x1D V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:f16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VCVTPS2PH_MEMf16_MASKmskw_ZMMf32_IMM8_AVX512 +} + + +# EMITTING VCVTPS2UDQ (VCVTPS2UDQ-512-1) +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTPS2UDQ_ZMMu32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTPS2UDQ_ZMMu32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2UDQ_ZMMu32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTSD2SI (VCVTSD2SI-128-1) +{ +ICLASS: VCVTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2SI_GPR32i32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32:TXT=ROUNDC REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2SI_GPR32i32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x2D VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR32_R():w:d:i32 MEM0:r:q:f64 +IFORM: VCVTSD2SI_GPR32i32_MEMf64_AVX512 +} + + +# EMITTING VCVTSD2SI (VCVTSD2SI-128-2) +{ +ICLASS: VCVTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2SI_GPR64i64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64:TXT=ROUNDC REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2SI_GPR64i64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x2D VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR64_R():w:q:i64 MEM0:r:q:f64 +IFORM: VCVTSD2SI_GPR64i64_MEMf64_AVX512 +} + + +# EMITTING VCVTSD2SS (VCVTSD2SS-128-1) +{ +ICLASS: VCVTSD2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VCVTSD2SS_XMMf32_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5A VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VCVTSD2SS_XMMf32_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VCVTSD2SS_XMMf32_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VCVTSD2USI (VCVTSD2USI-128-1) +{ +ICLASS: VCVTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2USI_GPR32u32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32:TXT=ROUNDC REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2USI_GPR32u32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x79 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR32_R():w:d:u32 MEM0:r:q:f64 +IFORM: VCVTSD2USI_GPR32u32_MEMf64_AVX512 +} + + +# EMITTING VCVTSD2USI (VCVTSD2USI-128-2) +{ +ICLASS: VCVTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2USI_GPR64u64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64:TXT=ROUNDC REG1=XMM_B3():r:dq:f64 +IFORM: VCVTSD2USI_GPR64u64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x79 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR64_R():w:q:u64 MEM0:r:q:f64 +IFORM: VCVTSD2USI_GPR64u64_MEMf64_AVX512 +} + + +# EMITTING VCVTSI2SD (VCVTSI2SD-128-1) +{ +ICLASS: VCVTSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10NF +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR +PATTERN: EVV 0x2A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 REG2=GPR32_B():r:d:i32 +IFORM: VCVTSI2SD_XMMf64_XMMf64_GPR32i32_AVX512 +} + +{ +ICLASS: VCVTSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10NF +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x2A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 MEM0:r:d:i32 +IFORM: VCVTSI2SD_XMMf64_XMMf64_MEMi32_AVX512 +} + + +# EMITTING VCVTSI2SD (VCVTSI2SD-128-2) +{ +ICLASS: VCVTSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 REG2=GPR64_B():r:q:i64 +IFORM: VCVTSI2SD_XMMf64_XMMf64_GPR64i64_AVX512 +} + +{ +ICLASS: VCVTSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2A VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=XMM_N3():r:dq:f64 REG2=GPR64_B():r:q:i64 +IFORM: VCVTSI2SD_XMMf64_XMMf64_GPR64i64_AVX512 +} + +{ +ICLASS: VCVTSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x2A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 MEM0:r:q:i64 +IFORM: VCVTSI2SD_XMMf64_XMMf64_MEMi64_AVX512 +} + + +# EMITTING VCVTSI2SS (VCVTSI2SS-128-1) +{ +ICLASS: VCVTSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 REG2=GPR32_B():r:d:i32 +IFORM: VCVTSI2SS_XMMf32_XMMf32_GPR32i32_AVX512 +} + +{ +ICLASS: VCVTSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2A VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=XMM_N3():r:dq:f32 REG2=GPR32_B():r:d:i32 +IFORM: VCVTSI2SS_XMMf32_XMMf32_GPR32i32_AVX512 +} + +{ +ICLASS: VCVTSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x2A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 MEM0:r:d:i32 +IFORM: VCVTSI2SS_XMMf32_XMMf32_MEMi32_AVX512 +} + + +# EMITTING VCVTSI2SS (VCVTSI2SS-128-2) +{ +ICLASS: VCVTSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 REG2=GPR64_B():r:q:i64 +IFORM: VCVTSI2SS_XMMf32_XMMf32_GPR64i64_AVX512 +} + +{ +ICLASS: VCVTSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2A VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=XMM_N3():r:dq:f32 REG2=GPR64_B():r:q:i64 +IFORM: VCVTSI2SS_XMMf32_XMMf32_GPR64i64_AVX512 +} + +{ +ICLASS: VCVTSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x2A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 MEM0:r:q:i64 +IFORM: VCVTSI2SS_XMMf32_XMMf32_MEMi64_AVX512 +} + + +# EMITTING VCVTSS2SD (VCVTSS2SD-128-1) +{ +ICLASS: VCVTSS2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VCVTSS2SD_XMMf64_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5A VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VCVTSS2SD_XMMf64_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VCVTSS2SD_XMMf64_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VCVTSS2SI (VCVTSS2SI-128-1) +{ +ICLASS: VCVTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2SI_GPR32i32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32:TXT=ROUNDC REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2SI_GPR32i32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x2D VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR32_R():w:d:i32 MEM0:r:d:f32 +IFORM: VCVTSS2SI_GPR32i32_MEMf32_AVX512 +} + + +# EMITTING VCVTSS2SI (VCVTSS2SI-128-2) +{ +ICLASS: VCVTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2SI_GPR64i64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2D VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64:TXT=ROUNDC REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2SI_GPR64i64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x2D VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR64_R():w:q:i64 MEM0:r:d:f32 +IFORM: VCVTSS2SI_GPR64i64_MEMf32_AVX512 +} + + +# EMITTING VCVTSS2USI (VCVTSS2USI-128-1) +{ +ICLASS: VCVTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2USI_GPR32u32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32:TXT=ROUNDC REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2USI_GPR32u32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x79 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR32_R():w:d:u32 MEM0:r:d:f32 +IFORM: VCVTSS2USI_GPR32u32_MEMf32_AVX512 +} + + +# EMITTING VCVTSS2USI (VCVTSS2USI-128-2) +{ +ICLASS: VCVTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2USI_GPR64u64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x79 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64:TXT=ROUNDC REG1=XMM_B3():r:dq:f32 +IFORM: VCVTSS2USI_GPR64u64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x79 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR64_R():w:q:u64 MEM0:r:d:f32 +IFORM: VCVTSS2USI_GPR64u64_MEMf32_AVX512 +} + + +# EMITTING VCVTTPD2DQ (VCVTTPD2DQ-512-1) +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2DQ_YMMi32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2DQ_YMMi32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2DQ_YMMi32_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VCVTTPD2UDQ (VCVTTPD2UDQ-512-1) +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2UDQ_YMMu32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2UDQ_YMMu32_MASKmskw_ZMMf64_AVX512_VL512 +} + +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2UDQ_YMMu32_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VCVTTPS2DQ (VCVTTPS2DQ-512-1) +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTTPS2DQ_ZMMi32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTTPS2DQ_ZMMi32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2DQ_ZMMi32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2UDQ (VCVTTPS2UDQ-512-1) +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTTPS2UDQ_ZMMu32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VCVTTPS2UDQ_ZMMu32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2UDQ_ZMMu32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTSD2SI (VCVTTSD2SI-128-1) +{ +ICLASS: VCVTTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2SI_GPR32i32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32:TXT=SAESTR REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2SI_GPR32i32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x2C VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR32_R():w:d:i32 MEM0:r:q:f64 +IFORM: VCVTTSD2SI_GPR32i32_MEMf64_AVX512 +} + + +# EMITTING VCVTTSD2SI (VCVTTSD2SI-128-2) +{ +ICLASS: VCVTTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2SI_GPR64i64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64:TXT=SAESTR REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2SI_GPR64i64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x2C VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR64_R():w:q:i64 MEM0:r:q:f64 +IFORM: VCVTTSD2SI_GPR64i64_MEMf64_AVX512 +} + + +# EMITTING VCVTTSD2USI (VCVTTSD2USI-128-1) +{ +ICLASS: VCVTTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2USI_GPR32u32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32:TXT=SAESTR REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2USI_GPR32u32_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x78 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR32_R():w:d:u32 MEM0:r:q:f64 +IFORM: VCVTTSD2USI_GPR32u32_MEMf64_AVX512 +} + + +# EMITTING VCVTTSD2USI (VCVTTSD2USI-128-2) +{ +ICLASS: VCVTTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64 REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2USI_GPR64u64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64:TXT=SAESTR REG1=XMM_B3():r:dq:f64 +IFORM: VCVTTSD2USI_GPR64u64_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTSD2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_Q +PATTERN: EVV 0x78 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_LDOP_Q() +OPERANDS: REG0=GPR64_R():w:q:u64 MEM0:r:q:f64 +IFORM: VCVTTSD2USI_GPR64u64_MEMf64_AVX512 +} + + +# EMITTING VCVTTSS2SI (VCVTTSS2SI-128-1) +{ +ICLASS: VCVTTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2SI_GPR32i32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:i32:TXT=SAESTR REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2SI_GPR32i32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x2C VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR32_R():w:d:i32 MEM0:r:d:f32 +IFORM: VCVTTSS2SI_GPR32i32_MEMf32_AVX512 +} + + +# EMITTING VCVTTSS2SI (VCVTTSS2SI-128-2) +{ +ICLASS: VCVTTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2SI_GPR64i64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2C VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:i64:TXT=SAESTR REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2SI_GPR64i64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2SI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x2C VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR64_R():w:q:i64 MEM0:r:d:f32 +IFORM: VCVTTSS2SI_GPR64i64_MEMf32_AVX512 +} + + +# EMITTING VCVTTSS2USI (VCVTTSS2USI-128-1) +{ +ICLASS: VCVTTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2USI_GPR32u32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_R():w:d:u32:TXT=SAESTR REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2USI_GPR32u32_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x78 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR32_R():w:d:u32 MEM0:r:d:f32 +IFORM: VCVTTSS2USI_GPR32u32_MEMf32_AVX512 +} + + +# EMITTING VCVTTSS2USI (VCVTTSS2USI-128-2) +{ +ICLASS: VCVTTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64 REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2USI_GPR64u64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x78 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_R():w:q:u64:TXT=SAESTR REG1=XMM_B3():r:dq:f32 +IFORM: VCVTTSS2USI_GPR64u64_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTSS2USI +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_WRITER_LDOP_D +PATTERN: EVV 0x78 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_LDOP_D() +OPERANDS: REG0=GPR64_R():w:q:u64 MEM0:r:d:f32 +IFORM: VCVTTSS2USI_GPR64u64_MEMf32_AVX512 +} + + +# EMITTING VCVTUDQ2PD (VCVTUDQ2PD-512-1) +{ +ICLASS: VCVTUDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VCVTUDQ2PD_ZMMf64_MASKmskw_YMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VCVTUDQ2PD_ZMMf64_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VCVTUDQ2PS (VCVTUDQ2PS-512-1) +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VCVTUDQ2PS_ZMMf32_MASKmskw_ZMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VCVTUDQ2PS_ZMMf32_MASKmskw_ZMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VCVTUDQ2PS_ZMMf32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VCVTUSI2SD (VCVTUSI2SD-128-1) +{ +ICLASS: VCVTUSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10NF +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR +PATTERN: EVV 0x7B VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 REG2=GPR32_B():r:d:u32 +IFORM: VCVTUSI2SD_XMMf64_XMMf64_GPR32u32_AVX512 +} + +{ +ICLASS: VCVTUSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10NF +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x7B VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 MEM0:r:d:u32 +IFORM: VCVTUSI2SD_XMMf64_XMMf64_MEMu32_AVX512 +} + + +# EMITTING VCVTUSI2SD (VCVTUSI2SD-128-2) +{ +ICLASS: VCVTUSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x7B VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 REG2=GPR64_B():r:q:u64 +IFORM: VCVTUSI2SD_XMMf64_XMMf64_GPR64u64_AVX512 +} + +{ +ICLASS: VCVTUSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x7B VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=XMM_N3():r:dq:f64 REG2=GPR64_B():r:q:u64 +IFORM: VCVTUSI2SD_XMMf64_XMMf64_GPR64u64_AVX512 +} + +{ +ICLASS: VCVTUSI2SD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x7B VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 MEM0:r:q:u64 +IFORM: VCVTUSI2SD_XMMf64_XMMf64_MEMu64_AVX512 +} + + +# EMITTING VCVTUSI2SS (VCVTUSI2SS-128-1) +{ +ICLASS: VCVTUSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x7B VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 REG2=GPR32_B():r:d:u32 +IFORM: VCVTUSI2SS_XMMf32_XMMf32_GPR32u32_AVX512 +} + +{ +ICLASS: VCVTUSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x7B VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=XMM_N3():r:dq:f32 REG2=GPR32_B():r:d:u32 +IFORM: VCVTUSI2SS_XMMf32_XMMf32_GPR32u32_AVX512 +} + +{ +ICLASS: VCVTUSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x7B VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 MEM0:r:d:u32 +IFORM: VCVTUSI2SS_XMMf32_XMMf32_MEMu32_AVX512 +} + + +# EMITTING VCVTUSI2SS (VCVTUSI2SS-128-2) +{ +ICLASS: VCVTUSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x7B VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 REG2=GPR64_B():r:q:u64 +IFORM: VCVTUSI2SS_XMMf32_XMMf32_GPR64u64_AVX512 +} + +{ +ICLASS: VCVTUSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x7B VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 mode64 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=XMM_N3():r:dq:f32 REG2=GPR64_B():r:q:u64 +IFORM: VCVTUSI2SS_XMMf32_XMMf32_GPR64u64_AVX512 +} + +{ +ICLASS: VCVTUSI2SS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_GPR_READER +PATTERN: EVV 0x7B VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 mode64 ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 MEM0:r:q:u64 +IFORM: VCVTUSI2SS_XMMf32_XMMf32_MEMu64_AVX512 +} + + +# EMITTING VDIVPD (VDIVPD-512-1) +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VDIVPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VDIVPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VDIVPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VDIVPS (VDIVPS-512-1) +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VDIVPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VDIVPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5E VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VDIVPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VDIVSD (VDIVSD-128-1) +{ +ICLASS: VDIVSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5E VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VDIVSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VDIVSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5E VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VDIVSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VDIVSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5E VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VDIVSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VDIVSS (VDIVSS-128-1) +{ +ICLASS: VDIVSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5E VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VDIVSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VDIVSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5E VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VDIVSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VDIVSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5E VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VDIVSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VEXPANDPD (VEXPANDPD-512-1) +{ +ICLASS: VEXPANDPD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x88 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f64 +IFORM: VEXPANDPD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VEXPANDPD (VEXPANDPD-512-2) +{ +ICLASS: VEXPANDPD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x88 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VEXPANDPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VEXPANDPS (VEXPANDPS-512-1) +{ +ICLASS: VEXPANDPS +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x88 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f32 +IFORM: VEXPANDPS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VEXPANDPS (VEXPANDPS-512-2) +{ +ICLASS: VEXPANDPS +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x88 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VEXPANDPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VEXTRACTF32X4 (VEXTRACTF32X4-512-1) +{ +ICLASS: VEXTRACTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VEXTRACTF32X4_XMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF32X4 (VEXTRACTF32X4-512-2) +{ +ICLASS: VEXTRACTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x19 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: MEM0:w:dq:f32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VEXTRACTF32X4_MEMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF64X4 (VEXTRACTF64X4-512-1) +{ +ICLASS: VEXTRACTF64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1B V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_B3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf64 IMM0:r:b +IFORM: VEXTRACTF64X4_YMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF64X4 (VEXTRACTF64X4-512-2) +{ +ICLASS: VEXTRACTF64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x1B V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_TUPLE4() +OPERANDS: MEM0:w:qq:f64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf64 IMM0:r:b +IFORM: VEXTRACTF64X4_MEMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI32X4 (VEXTRACTI32X4-512-1) +{ +ICLASS: VEXTRACTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 IMM0:r:b +IFORM: VEXTRACTI32X4_XMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI32X4 (VEXTRACTI32X4-512-2) +{ +ICLASS: VEXTRACTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x39 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 IMM0:r:b +IFORM: VEXTRACTI32X4_MEMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI64X4 (VEXTRACTI64X4-512-1) +{ +ICLASS: VEXTRACTI64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_B3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 IMM0:r:b +IFORM: VEXTRACTI64X4_YMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI64X4 (VEXTRACTI64X4-512-2) +{ +ICLASS: VEXTRACTI64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x3B V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_TUPLE4() +OPERANDS: MEM0:w:qq:u64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 IMM0:r:b +IFORM: VEXTRACTI64X4_MEMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTPS (VEXTRACTPS-128-1) +{ +ICLASS: VEXTRACTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x17 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=GPR32_B():w:d:f32 REG1=XMM_R3():r:dq:f32 IMM0:r:b +IFORM: VEXTRACTPS_GPR32f32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VEXTRACTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE +PATTERN: EVV 0x17 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() ESIZE_32_BITS() NELEM_GPR_WRITER_STORE() +OPERANDS: MEM0:w:d:f32 REG0=XMM_R3():r:dq:f32 IMM0:r:b +IFORM: VEXTRACTPS_MEMf32_XMMf32_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMPD (VFIXUPIMMPD-512-1) +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VFIXUPIMMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 UIMM8() +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VFIXUPIMMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VFIXUPIMMPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMPS (VFIXUPIMMPS-512-1) +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VFIXUPIMMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 UIMM8() +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VFIXUPIMMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VFIXUPIMMPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMSD (VFIXUPIMMSD-128-1) +{ +ICLASS: VFIXUPIMMSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VFIXUPIMMSD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VFIXUPIMMSD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x55 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 IMM0:r:b +IFORM: VFIXUPIMMSD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMSS (VFIXUPIMMSS-128-1) +{ +ICLASS: VFIXUPIMMSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VFIXUPIMMSS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VFIXUPIMMSS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x55 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VFIXUPIMMSS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFMADD132PD (VFMADD132PD-512-1) +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x98 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD132PS (VFMADD132PS-512-1) +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x98 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD132SD (VFMADD132SD-128-1) +{ +ICLASS: VFMADD132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x99 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x99 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x99 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFMADD132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD132SS (VFMADD132SS-128-1) +{ +ICLASS: VFMADD132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x99 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x99 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x99 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFMADD132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD213PD (VFMADD213PD-512-1) +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD213PS (VFMADD213PS-512-1) +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD213SD (VFMADD213SD-128-1) +{ +ICLASS: VFMADD213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xA9 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xA9 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xA9 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFMADD213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD213SS (VFMADD213SS-128-1) +{ +ICLASS: VFMADD213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xA9 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xA9 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xA9 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFMADD213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD231PD (VFMADD231PD-512-1) +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD231PS (VFMADD231PS-512-1) +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD231SD (VFMADD231SD-128-1) +{ +ICLASS: VFMADD231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xB9 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xB9 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xB9 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFMADD231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD231SS (VFMADD231SS-128-1) +{ +ICLASS: VFMADD231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xB9 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xB9 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xB9 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFMADD231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB132PD (VFMADDSUB132PD-512-1) +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADDSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADDSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x96 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB132PS (VFMADDSUB132PS-512-1) +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADDSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADDSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x96 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB213PD (VFMADDSUB213PD-512-1) +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADDSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADDSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB213PS (VFMADDSUB213PS-512-1) +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADDSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADDSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB231PD (VFMADDSUB231PD-512-1) +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADDSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMADDSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB231PS (VFMADDSUB231PS-512-1) +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADDSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMADDSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB132PD (VFMSUB132PD-512-1) +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB132PS (VFMSUB132PS-512-1) +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB132SD (VFMSUB132SD-128-1) +{ +ICLASS: VFMSUB132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9B V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x9B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFMSUB132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB132SS (VFMSUB132SS-128-1) +{ +ICLASS: VFMSUB132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9B V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x9B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFMSUB132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB213PD (VFMSUB213PD-512-1) +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB213PS (VFMSUB213PS-512-1) +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB213SD (VFMSUB213SD-128-1) +{ +ICLASS: VFMSUB213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAB V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAB V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xAB V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFMSUB213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB213SS (VFMSUB213SS-128-1) +{ +ICLASS: VFMSUB213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAB V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAB V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xAB V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFMSUB213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB231PD (VFMSUB231PD-512-1) +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB231PS (VFMSUB231PS-512-1) +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB231SD (VFMSUB231SD-128-1) +{ +ICLASS: VFMSUB231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBB V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBB V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xBB V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFMSUB231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB231SS (VFMSUB231SS-128-1) +{ +ICLASS: VFMSUB231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBB V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBB V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xBB V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFMSUB231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD132PD (VFMSUBADD132PD-512-1) +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUBADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUBADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x97 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD132PS (VFMSUBADD132PS-512-1) +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUBADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUBADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x97 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD213PD (VFMSUBADD213PD-512-1) +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUBADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUBADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD213PS (VFMSUBADD213PS-512-1) +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUBADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUBADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD231PD (VFMSUBADD231PD-512-1) +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUBADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFMSUBADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD231PS (VFMSUBADD231PS-512-1) +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUBADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFMSUBADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD132PD (VFNMADD132PD-512-1) +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD132PS (VFNMADD132PS-512-1) +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD132SD (VFNMADD132SD-128-1) +{ +ICLASS: VFNMADD132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9D V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x9D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFNMADD132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD132SS (VFNMADD132SS-128-1) +{ +ICLASS: VFNMADD132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9D V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x9D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFNMADD132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD213PD (VFNMADD213PD-512-1) +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD213PS (VFNMADD213PS-512-1) +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD213SD (VFNMADD213SD-128-1) +{ +ICLASS: VFNMADD213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAD V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAD V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xAD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFNMADD213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD213SS (VFNMADD213SS-128-1) +{ +ICLASS: VFNMADD213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAD V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAD V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xAD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFNMADD213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD231PD (VFNMADD231PD-512-1) +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD231PS (VFNMADD231PS-512-1) +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD231SD (VFNMADD231SD-128-1) +{ +ICLASS: VFNMADD231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBD V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBD V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xBD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFNMADD231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD231SS (VFNMADD231SS-128-1) +{ +ICLASS: VFNMADD231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBD V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBD V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xBD V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFNMADD231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB132PD (VFNMSUB132PD-512-1) +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB132PS (VFNMSUB132PS-512-1) +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB132SD (VFNMSUB132SD-128-1) +{ +ICLASS: VFNMSUB132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9F V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB132SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x9F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFNMSUB132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB132SS (VFNMSUB132SS-128-1) +{ +ICLASS: VFNMSUB132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x9F V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB132SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x9F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFNMSUB132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB213PD (VFNMSUB213PD-512-1) +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB213PS (VFNMSUB213PS-512-1) +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB213SD (VFNMSUB213SD-128-1) +{ +ICLASS: VFNMSUB213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAF V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAF V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB213SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xAF V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFNMSUB213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB213SS (VFNMSUB213SS-128-1) +{ +ICLASS: VFNMSUB213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAF V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xAF V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB213SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xAF V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFNMSUB213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB231PD (VFNMSUB231PD-512-1) +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():rw:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VFNMSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB231PS (VFNMSUB231PS-512-1) +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():rw:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VFNMSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB231SD (VFNMSUB231SD-128-1) +{ +ICLASS: VFNMSUB231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBF V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBF V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB231SD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xBF V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VFNMSUB231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB231SS (VFNMSUB231SS-128-1) +{ +ICLASS: VFNMSUB231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBF V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0xBF V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB231SS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0xBF V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VFNMSUB231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VGATHERDPD (VGATHERDPD-512-1) +{ +ICLASS: VGATHERDPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x92 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASKNOT0():rw:mskw MEM0:r:zd:f64 +IFORM: VGATHERDPD_ZMMf64_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VGATHERDPS (VGATHERDPS-512-1) +{ +ICLASS: VGATHERDPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x92 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASKNOT0():rw:mskw MEM0:r:zd:f32 +IFORM: VGATHERDPS_ZMMf32_MASKmskw_MEMf32_AVX512_VL512 +} + + +# EMITTING VGATHERQPD (VGATHERQPD-512-1) +{ +ICLASS: VGATHERQPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x93 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASKNOT0():rw:mskw MEM0:r:zd:f64 +IFORM: VGATHERQPD_ZMMf64_MASKmskw_MEMf64_AVX512_VL512 +} + + +# EMITTING VGATHERQPS (VGATHERQPS-512-1) +{ +ICLASS: VGATHERQPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x93 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASKNOT0():rw:mskw MEM0:r:qq:f32 +IFORM: VGATHERQPS_YMMf32_MASKmskw_MEMf32_AVX512_VL512 +} + + +# EMITTING VGETEXPPD (VGETEXPPD-512-1) +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VGETEXPPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VGETEXPPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x42 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VGETEXPPD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VGETEXPPS (VGETEXPPS-512-1) +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VGETEXPPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VGETEXPPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x42 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VGETEXPPS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VGETEXPSD (VGETEXPSD-128-1) +{ +ICLASS: VGETEXPSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VGETEXPSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VGETEXPSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VGETEXPSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VGETEXPSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x43 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VGETEXPSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VGETEXPSS (VGETEXPSS-128-1) +{ +ICLASS: VGETEXPSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VGETEXPSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VGETEXPSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VGETEXPSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VGETEXPSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x43 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VGETEXPSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VGETMANTPD (VGETMANTPD-512-1) +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VGETMANTPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VGETMANTPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x26 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VGETMANTPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VGETMANTPS (VGETMANTPS-512-1) +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VGETMANTPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VGETMANTPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x26 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VGETMANTPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VGETMANTSD (VGETMANTSD-128-1) +{ +ICLASS: VGETMANTSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VGETMANTSD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VGETMANTSD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x27 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 IMM0:r:b +IFORM: VGETMANTSD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VGETMANTSS (VGETMANTSS-128-1) +{ +ICLASS: VGETMANTSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VGETMANTSS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VGETMANTSS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x27 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VGETMANTSS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VINSERTF32X4 (VINSERTF32X4-512-1) +{ +ICLASS: VINSERTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VINSERTF32X4_ZMMf32_MASKmskw_ZMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x18 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:dq:f32 IMM0:r:b +IFORM: VINSERTF32X4_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VINSERTF64X4 (VINSERTF64X4-512-1) +{ +ICLASS: VINSERTF64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1A V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VINSERTF64X4_ZMMf64_MASKmskw_ZMMf64_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VINSERTF64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x1A V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:qq:f64 IMM0:r:b +IFORM: VINSERTF64X4_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VINSERTI32X4 (VINSERTI32X4-512-1) +{ +ICLASS: VINSERTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VINSERTI32X4_ZMMu32_MASKmskw_ZMMu32_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x38 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:dq:u32 IMM0:r:b +IFORM: VINSERTI32X4_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VINSERTI64X4 (VINSERTI64X4-512-1) +{ +ICLASS: VINSERTI64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3A V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VINSERTI64X4_ZMMu64_MASKmskw_ZMMu64_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VINSERTI64X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x3A V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_TUPLE4() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:qq:u64 IMM0:r:b +IFORM: VINSERTI64X4_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VINSERTPS (VINSERTPS-128-1) +{ +ICLASS: VINSERTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x21 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VINSERTPS_XMMf32_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE1 +PATTERN: EVV 0x21 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 MASK=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VINSERTPS_XMMf32_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VMAXPD (VMAXPD-512-1) +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VMAXPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VMAXPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMAXPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VMAXPS (VMAXPS-512-1) +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VMAXPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VMAXPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5F VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMAXPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VMAXSD (VMAXSD-128-1) +{ +ICLASS: VMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMAXSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5F VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMAXSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VMAXSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMAXSS (VMAXSS-128-1) +{ +ICLASS: VMAXSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMAXSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMAXSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5F VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMAXSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMAXSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VMAXSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMINPD (VMINPD-512-1) +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VMINPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VMINPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5D V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMINPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VMINPS (VMINPS-512-1) +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VMINPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VMINPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5D VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMINPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VMINSD (VMINSD-128-1) +{ +ICLASS: VMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5D VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMINSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5D VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMINSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5D VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VMINSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMINSS (VMINSS-128-1) +{ +ICLASS: VMINSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5D VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMINSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMINSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5D VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMINSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMINSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5D VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VMINSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-512-1) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VMOVAPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x28 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f64 +IFORM: VMOVAPD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-512-2) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf64 +IFORM: VMOVAPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-512-3) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x29 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:f64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf64 +IFORM: VMOVAPD_MEMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-512-1) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VMOVAPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x28 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f32 +IFORM: VMOVAPS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-512-2) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 +IFORM: VMOVAPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-512-3) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x29 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:f32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf32 +IFORM: VMOVAPS_MEMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VMOVD (VMOVD-128-1) +{ +ICLASS: VMOVD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x6E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=GPR32_B():r:d:u32 +IFORM: VMOVD_XMMu32_GPR32u32_AVX512 +} + +{ +ICLASS: VMOVD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_READER +PATTERN: EVV 0x6E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:u32 MEM0:r:d:u32 +IFORM: VMOVD_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VMOVD (VMOVD-128-2) +{ +ICLASS: VMOVD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x7E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR32_B():w:d:u32 REG1=XMM_R3():r:dq:u32 +IFORM: VMOVD_GPR32u32_XMMu32_AVX512 +} + +{ +ICLASS: VMOVD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE +PATTERN: EVV 0x7E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_GPR_WRITER_STORE() +OPERANDS: MEM0:w:d:u32 REG0=XMM_R3():r:dq:u32 +IFORM: VMOVD_MEMu32_XMMu32_AVX512 +} + + +# EMITTING VMOVDDUP (VMOVDDUP-512-1) +{ +ICLASS: VMOVDDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VMOVDDUP_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VMOVDDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MOVDDUP +PATTERN: EVV 0x12 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_MOVDDUP() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f64 +IFORM: VMOVDDUP_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-512-1) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VMOVDQA32_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u32 +IFORM: VMOVDQA32_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-512-2) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VMOVDQA32_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-512-3) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VMOVDQA32_MEMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-512-1) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VMOVDQA64_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u64 +IFORM: VMOVDQA64_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-512-2) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VMOVDQA64_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-512-3) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VMOVDQA64_MEMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-512-1) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VMOVDQU32_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u32 +IFORM: VMOVDQU32_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-512-2) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VMOVDQU32_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-512-3) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VMOVDQU32_MEMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-512-1) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VMOVDQU64_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u64 +IFORM: VMOVDQU64_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-512-2) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VMOVDQU64_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-512-3) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VMOVDQU64_MEMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VMOVHLPS (VMOVHLPS-128-1) +{ +ICLASS: VMOVHLPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E7NM128 +REAL_OPCODE: Y +PATTERN: EVV 0x12 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 REG2=XMM_B3():r:dq:f32 +IFORM: VMOVHLPS_XMMf32_XMMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVHPD (VMOVHPD-128-1) +{ +ICLASS: VMOVHPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_SCALAR +PATTERN: EVV 0x16 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:q:f64 MEM0:r:q:f64 +IFORM: VMOVHPD_XMMf64_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMOVHPD (VMOVHPD-128-2) +{ +ICLASS: VMOVHPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_SCALAR +PATTERN: EVV 0x17 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: MEM0:w:q:f64 REG0=XMM_R3():r:dq:f64 +IFORM: VMOVHPD_MEMf64_XMMf64_AVX512 +} + + +# EMITTING VMOVHPS (VMOVHPS-128-1) +{ +ICLASS: VMOVHPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE2 +PATTERN: EVV 0x16 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:q:f32 MEM0:r:q:f32 +IFORM: VMOVHPS_XMMf32_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMOVHPS (VMOVHPS-128-2) +{ +ICLASS: VMOVHPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE2 +PATTERN: EVV 0x17 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: MEM0:w:q:f32 REG0=XMM_R3():r:dq:f32 +IFORM: VMOVHPS_MEMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVLHPS (VMOVLHPS-128-1) +{ +ICLASS: VMOVLHPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E7NM128 +REAL_OPCODE: Y +PATTERN: EVV 0x16 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:q:f32 REG2=XMM_B3():r:q:f32 +IFORM: VMOVLHPS_XMMf32_XMMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVLPD (VMOVLPD-128-1) +{ +ICLASS: VMOVLPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_SCALAR +PATTERN: EVV 0x12 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VMOVLPD_XMMf64_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMOVLPD (VMOVLPD-128-2) +{ +ICLASS: VMOVLPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_SCALAR +PATTERN: EVV 0x13 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: MEM0:w:q:f64 REG0=XMM_R3():r:q:f64 +IFORM: VMOVLPD_MEMf64_XMMf64_AVX512 +} + + +# EMITTING VMOVLPS (VMOVLPS-128-1) +{ +ICLASS: VMOVLPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE2 +PATTERN: EVV 0x12 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=XMM_N3():r:dq:f32 MEM0:r:q:f32 +IFORM: VMOVLPS_XMMf32_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMOVLPS (VMOVLPS-128-2) +{ +ICLASS: VMOVLPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_TUPLE2 +PATTERN: EVV 0x13 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: MEM0:w:q:f32 REG0=XMM_R3():r:q:f32 +IFORM: VMOVLPS_MEMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVNTDQ (VMOVNTDQ-512-1) +{ +ICLASS: VMOVNTDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0xE7 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u32 REG0=ZMM_R3():r:zu32 +IFORM: VMOVNTDQ_MEMu32_ZMMu32_AVX512 +} + + +# EMITTING VMOVNTDQA (VMOVNTDQA-512-1) +{ +ICLASS: VMOVNTDQA +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu32 MEM0:r:zd:u32 +IFORM: VMOVNTDQA_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VMOVNTPD (VMOVNTPD-512-1) +{ +ICLASS: VMOVNTPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:f64 REG0=ZMM_R3():r:zf64 +IFORM: VMOVNTPD_MEMf64_ZMMf64_AVX512 +} + + +# EMITTING VMOVNTPS (VMOVNTPS-512-1) +{ +ICLASS: VMOVNTPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:f32 REG0=ZMM_R3():r:zf32 +IFORM: VMOVNTPS_MEMf32_ZMMf32_AVX512 +} + + +# EMITTING VMOVQ (VMOVQ-128-1) +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x6E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=GPR64_B():r:q:u64 +IFORM: VMOVQ_XMMu64_GPR64u64_AVX512 +} + +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_READER +PATTERN: EVV 0x6E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:u64 MEM0:r:q:u64 +IFORM: VMOVQ_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VMOVQ (VMOVQ-128-2) +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x7E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 mode64 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=GPR64_B():w:q:u64 REG1=XMM_R3():r:dq:u64 +IFORM: VMOVQ_GPR64u64_XMMu64_AVX512 +} + +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE +PATTERN: EVV 0x7E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 mode64 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_GPR_WRITER_STORE() +OPERANDS: MEM0:w:q:u64 REG0=XMM_R3():r:dq:u64 +IFORM: VMOVQ_MEMu64_XMMu64_AVX512 +} + + +# EMITTING VMOVQ (VMOVQ-128-3) +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x7E VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=XMM_B3():r:dq:u64 +IFORM: VMOVQ_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_SCALAR +PATTERN: EVV 0x7E VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:u64 MEM0:r:q:u64 +IFORM: VMOVQ_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VMOVQ (VMOVQ-128-4) +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0xD6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_B3():w:dq:u64 REG1=XMM_R3():r:dq:u64 +IFORM: VMOVQ_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VMOVQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_SCALAR +PATTERN: EVV 0xD6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: MEM0:w:q:u64 REG0=XMM_R3():r:dq:u64 +IFORM: VMOVQ_MEMu64_XMMu64_AVX512 +} + + +# EMITTING VMOVSD (VMOVSD-128-1) +{ +ICLASS: VMOVSD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x10 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f64 +IFORM: VMOVSD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVSD (VMOVSD-128-2) +{ +ICLASS: VMOVSD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x11 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: MEM0:w:q:f64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f64 +IFORM: VMOVSD_MEMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VMOVSD (VMOVSD-128-3) +{ +ICLASS: VMOVSD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x10 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMOVSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + + +# EMITTING VMOVSD (VMOVSD-128-4) +{ +ICLASS: VMOVSD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x11 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_B3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_R3():r:dq:f64 +IFORM: VMOVSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + + +# EMITTING VMOVSHDUP (VMOVSHDUP-512-1) +{ +ICLASS: VMOVSHDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VMOVSHDUP_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VMOVSHDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x16 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f32 +IFORM: VMOVSHDUP_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVSLDUP (VMOVSLDUP-512-1) +{ +ICLASS: VMOVSLDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VMOVSLDUP_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VMOVSLDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x12 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f32 +IFORM: VMOVSLDUP_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVSS (VMOVSS-128-1) +{ +ICLASS: VMOVSS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x10 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:f32 +IFORM: VMOVSS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVSS (VMOVSS-128-2) +{ +ICLASS: VMOVSS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x11 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: MEM0:w:d:f32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VMOVSS_MEMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VMOVSS (VMOVSS-128-3) +{ +ICLASS: VMOVSS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x10 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMOVSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVSS (VMOVSS-128-4) +{ +ICLASS: VMOVSS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x11 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_B3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_R3():r:dq:f32 +IFORM: VMOVSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-512-1) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VMOVUPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f64 +IFORM: VMOVUPD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-512-2) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf64 +IFORM: VMOVUPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-512-3) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:f64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf64 +IFORM: VMOVUPD_MEMf64_MASKmskw_ZMMf64_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-512-1) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VMOVUPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:f32 +IFORM: VMOVUPS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-512-2) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 +IFORM: VMOVUPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-512-3) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:f32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf32 +IFORM: VMOVUPS_MEMf32_MASKmskw_ZMMf32_AVX512 +} + + +# EMITTING VMULPD (VMULPD-512-1) +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VMULPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VMULPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x59 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMULPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VMULPS (VMULPS-512-1) +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VMULPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VMULPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x59 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMULPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VMULSD (VMULSD-128-1) +{ +ICLASS: VMULSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x59 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMULSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMULSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x59 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMULSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMULSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x59 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VMULSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMULSS (VMULSS-128-1) +{ +ICLASS: VMULSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x59 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMULSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMULSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x59 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMULSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMULSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x59 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VMULSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VPABSD (VPABSD-512-1) +{ +ICLASS: VPABSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zi32 +IFORM: VPABSD_ZMMi32_MASKmskw_ZMMi32_AVX512 +} + +{ +ICLASS: VPABSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPABSD_ZMMi32_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPABSQ (VPABSQ-512-1) +{ +ICLASS: VPABSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zi64 +IFORM: VPABSQ_ZMMi64_MASKmskw_ZMMi64_AVX512 +} + +{ +ICLASS: VPABSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPABSQ_ZMMi64_MASKmskw_MEMi64_AVX512 +} + + +# EMITTING VPADDD (VPADDD-512-1) +{ +ICLASS: VPADDD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPADDD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPADDD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPADDD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPADDQ (VPADDQ-512-1) +{ +ICLASS: VPADDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPADDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPADDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xD4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPADDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPANDD (VPANDD-512-1) +{ +ICLASS: VPANDD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPANDD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPANDD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPANDD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPANDND (VPANDND-512-1) +{ +ICLASS: VPANDND +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPANDND_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPANDND +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPANDND_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPANDNQ (VPANDNQ-512-1) +{ +ICLASS: VPANDNQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPANDNQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPANDNQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPANDNQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPANDQ (VPANDQ-512-1) +{ +ICLASS: VPANDQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPANDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPANDQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPANDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPBLENDMD (VPBLENDMD-512-1) +{ +ICLASS: VPBLENDMD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x64 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPBLENDMD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPBLENDMD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x64 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPBLENDMD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPBLENDMQ (VPBLENDMQ-512-1) +{ +ICLASS: VPBLENDMQ +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x64 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPBLENDMQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPBLENDMQ +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x64 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPBLENDMQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-512-1) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x58 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:u32 EMX_BROADCAST_1TO16_32 +IFORM: VPBROADCASTD_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-512-2) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 EMX_BROADCAST_1TO16_32 +IFORM: VPBROADCASTD_ZMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-512-3) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u32 EMX_BROADCAST_1TO16_32 +IFORM: VPBROADCASTD_ZMMu32_MASKmskw_GPR32u32_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-512-1) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x59 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE1() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:u64 EMX_BROADCAST_1TO8_64 +IFORM: VPBROADCASTQ_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-512-2) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 EMX_BROADCAST_1TO8_64 +IFORM: VPBROADCASTQ_ZMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-512-3) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 mode64 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR64_B():r:q:u64 EMX_BROADCAST_1TO8_64 +IFORM: VPBROADCASTQ_ZMMu64_MASKmskw_GPR64u64_AVX512 +} + + +# EMITTING VPCMPD (VPCMPD-512-1) +{ +ICLASS: VPCMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi32 REG3=ZMM_B3():r:zi32 IMM0:r:b +IFORM: VPCMPD_MASKmskw_MASKmskw_ZMMi32_ZMMi32_IMM8_AVX512 +} + +{ +ICLASS: VPCMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi32 MEM0:r:vv:i32:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPD_MASKmskw_MASKmskw_ZMMi32_MEMi32_IMM8_AVX512 +} + + +# EMITTING VPCMPEQD (VPCMPEQD-512-1) +{ +ICLASS: VPCMPEQD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPCMPEQD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPCMPEQD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPCMPEQD_MASKmskw_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPCMPEQQ (VPCMPEQQ-512-1) +{ +ICLASS: VPCMPEQQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPCMPEQQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPCMPEQQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x29 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPCMPEQQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPCMPGTD (VPCMPGTD-512-1) +{ +ICLASS: VPCMPGTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi32 REG3=ZMM_B3():r:zi32 +IFORM: VPCMPGTD_MASKmskw_MASKmskw_ZMMi32_ZMMi32_AVX512 +} + +{ +ICLASS: VPCMPGTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPCMPGTD_MASKmskw_MASKmskw_ZMMi32_MEMi32_AVX512 +} + + +# EMITTING VPCMPGTQ (VPCMPGTQ-512-1) +{ +ICLASS: VPCMPGTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x37 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi64 REG3=ZMM_B3():r:zi64 +IFORM: VPCMPGTQ_MASKmskw_MASKmskw_ZMMi64_ZMMi64_AVX512 +} + +{ +ICLASS: VPCMPGTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x37 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPCMPGTQ_MASKmskw_MASKmskw_ZMMi64_MEMi64_AVX512 +} + + +# EMITTING VPCMPQ (VPCMPQ-512-1) +{ +ICLASS: VPCMPQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi64 REG3=ZMM_B3():r:zi64 IMM0:r:b +IFORM: VPCMPQ_MASKmskw_MASKmskw_ZMMi64_ZMMi64_IMM8_AVX512 +} + +{ +ICLASS: VPCMPQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi64 MEM0:r:vv:i64:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPQ_MASKmskw_MASKmskw_ZMMi64_MEMi64_IMM8_AVX512 +} + + +# EMITTING VPCMPUD (VPCMPUD-512-1) +{ +ICLASS: VPCMPUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPCMPUD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPUD_MASKmskw_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPCMPUQ (VPCMPUQ-512-1) +{ +ICLASS: VPCMPUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPCMPUQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPUQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPCOMPRESSD (VPCOMPRESSD-512-1) +{ +ICLASS: VPCOMPRESSD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VPCOMPRESSD_MEMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPCOMPRESSD (VPCOMPRESSD-512-2) +{ +ICLASS: VPCOMPRESSD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VPCOMPRESSD_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPCOMPRESSQ (VPCOMPRESSQ-512-1) +{ +ICLASS: VPCOMPRESSQ +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:u64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPCOMPRESSQ_MEMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPCOMPRESSQ (VPCOMPRESSQ-512-2) +{ +ICLASS: VPCOMPRESSQ +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPCOMPRESSQ_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPERMD (VPERMD-512-1) +{ +ICLASS: VPERMD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x36 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPERMD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPERMD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x36 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMI2D (VPERMI2D-512-1) +{ +ICLASS: VPERMI2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPERMI2D_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPERMI2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMI2D_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMI2PD (VPERMI2PD-512-1) +{ +ICLASS: VPERMI2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x77 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VPERMI2PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VPERMI2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x77 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMI2PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMI2PS (VPERMI2PS-512-1) +{ +ICLASS: VPERMI2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x77 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VPERMI2PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VPERMI2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x77 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMI2PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMI2Q (VPERMI2Q-512-1) +{ +ICLASS: VPERMI2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPERMI2Q_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPERMI2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMI2Q_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMILPD (VPERMILPD-512-1) +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x05 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VPERMILPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x05 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMILPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VPERMILPD (VPERMILPD-512-2) +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VPERMILPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x0D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMILPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMILPS (VPERMILPS-512-1) +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x04 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VPERMILPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x04 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMILPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VPERMILPS (VPERMILPS-512-2) +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VPERMILPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x0C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMILPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMPD (VPERMPD-512-1) +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x01 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VPERMPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x01 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VPERMPD (VPERMPD-512-2) +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VPERMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x16 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMPS (VPERMPS-512-1) +{ +ICLASS: VPERMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VPERMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VPERMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x16 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMQ (VPERMQ-512-1) +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x00 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPERMQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x00 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPERMQ (VPERMQ-512-2) +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x36 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPERMQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x36 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMT2D (VPERMT2D-512-1) +{ +ICLASS: VPERMT2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPERMT2D_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPERMT2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMT2D_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMT2PD (VPERMT2PD-512-1) +{ +ICLASS: VPERMT2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VPERMT2PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VPERMT2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMT2PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMT2PS (VPERMT2PS-512-1) +{ +ICLASS: VPERMT2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VPERMT2PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VPERMT2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMT2PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMT2Q (VPERMT2Q-512-1) +{ +ICLASS: VPERMT2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPERMT2Q_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPERMT2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMT2Q_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPEXPANDD (VPEXPANDD-512-1) +{ +ICLASS: VPEXPANDD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x89 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u32 +IFORM: VPEXPANDD_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPEXPANDD (VPEXPANDD-512-2) +{ +ICLASS: VPEXPANDD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x89 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VPEXPANDD_ZMMu32_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPEXPANDQ (VPEXPANDQ-512-1) +{ +ICLASS: VPEXPANDQ +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x89 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u64 +IFORM: VPEXPANDQ_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPEXPANDQ (VPEXPANDQ-512-2) +{ +ICLASS: VPEXPANDQ +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x89 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VPEXPANDQ_ZMMu64_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPGATHERDD (VPGATHERDD-512-1) +{ +ICLASS: VPGATHERDD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x90 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASKNOT0():rw:mskw MEM0:r:zd:u32 +IFORM: VPGATHERDD_ZMMu32_MASKmskw_MEMu32_AVX512_VL512 +} + + +# EMITTING VPGATHERDQ (VPGATHERDQ-512-1) +{ +ICLASS: VPGATHERDQ +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x90 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASKNOT0():rw:mskw MEM0:r:zd:u64 +IFORM: VPGATHERDQ_ZMMu64_MASKmskw_MEMu64_AVX512_VL512 +} + + +# EMITTING VPGATHERQD (VPGATHERQD-512-1) +{ +ICLASS: VPGATHERQD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x91 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASKNOT0():rw:mskw MEM0:r:qq:u32 +IFORM: VPGATHERQD_YMMu32_MASKmskw_MEMu32_AVX512_VL512 +} + + +# EMITTING VPGATHERQQ (VPGATHERQQ-512-1) +{ +ICLASS: VPGATHERQQ +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x91 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASKNOT0():rw:mskw MEM0:r:zd:u64 +IFORM: VPGATHERQQ_ZMMu64_MASKmskw_MEMu64_AVX512_VL512 +} + + +# EMITTING VPMAXSD (VPMAXSD-512-1) +{ +ICLASS: VPMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 REG3=ZMM_B3():r:zi32 +IFORM: VPMAXSD_ZMMi32_MASKmskw_ZMMi32_ZMMi32_AVX512 +} + +{ +ICLASS: VPMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMAXSD_ZMMi32_MASKmskw_ZMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMAXSQ (VPMAXSQ-512-1) +{ +ICLASS: VPMAXSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi64 REG3=ZMM_B3():r:zi64 +IFORM: VPMAXSQ_ZMMi64_MASKmskw_ZMMi64_ZMMi64_AVX512 +} + +{ +ICLASS: VPMAXSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPMAXSQ_ZMMi64_MASKmskw_ZMMi64_MEMi64_AVX512 +} + + +# EMITTING VPMAXUD (VPMAXUD-512-1) +{ +ICLASS: VPMAXUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPMAXUD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPMAXUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMAXUD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMAXUQ (VPMAXUQ-512-1) +{ +ICLASS: VPMAXUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPMAXUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPMAXUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMAXUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMINSD (VPMINSD-512-1) +{ +ICLASS: VPMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 REG3=ZMM_B3():r:zi32 +IFORM: VPMINSD_ZMMi32_MASKmskw_ZMMi32_ZMMi32_AVX512 +} + +{ +ICLASS: VPMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x39 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMINSD_ZMMi32_MASKmskw_ZMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMINSQ (VPMINSQ-512-1) +{ +ICLASS: VPMINSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi64 REG3=ZMM_B3():r:zi64 +IFORM: VPMINSQ_ZMMi64_MASKmskw_ZMMi64_ZMMi64_AVX512 +} + +{ +ICLASS: VPMINSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x39 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPMINSQ_ZMMi64_MASKmskw_ZMMi64_MEMi64_AVX512 +} + + +# EMITTING VPMINUD (VPMINUD-512-1) +{ +ICLASS: VPMINUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPMINUD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPMINUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMINUD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMINUQ (VPMINUQ-512-1) +{ +ICLASS: VPMINUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPMINUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPMINUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMINUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMOVDB (VPMOVDB-512-1) +{ +ICLASS: VPMOVDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x31 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VPMOVDB_XMMu8_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVDB (VPMOVDB-512-2) +{ +ICLASS: VPMOVDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x31 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:dq:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VPMOVDB_MEMu8_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVDW (VPMOVDW-512-1) +{ +ICLASS: VPMOVDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x33 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VPMOVDW_YMMu16_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVDW (VPMOVDW-512-2) +{ +ICLASS: VPMOVDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x33 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:u16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VPMOVDW_MEMu16_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVQB (VPMOVQB-512-1) +{ +ICLASS: VPMOVQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x32 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPMOVQB_XMMu8_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVQB (VPMOVQB-512-2) +{ +ICLASS: VPMOVQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x32 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:q:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPMOVQB_MEMu8_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVQD (VPMOVQD-512-1) +{ +ICLASS: VPMOVQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x35 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPMOVQD_YMMu32_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVQD (VPMOVQD-512-2) +{ +ICLASS: VPMOVQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x35 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPMOVQD_MEMu32_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVQW (VPMOVQW-512-1) +{ +ICLASS: VPMOVQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x34 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPMOVQW_XMMu16_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVQW (VPMOVQW-512-2) +{ +ICLASS: VPMOVQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x34 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:dq:u16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPMOVQW_MEMu16_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVSDB (VPMOVSDB-512-1) +{ +ICLASS: VPMOVSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x21 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zi32 +IFORM: VPMOVSDB_XMMi8_MASKmskw_ZMMi32_AVX512 +} + + +# EMITTING VPMOVSDB (VPMOVSDB-512-2) +{ +ICLASS: VPMOVSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x21 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:dq:i8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zi32 +IFORM: VPMOVSDB_MEMi8_MASKmskw_ZMMi32_AVX512 +} + + +# EMITTING VPMOVSDW (VPMOVSDW-512-1) +{ +ICLASS: VPMOVSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zi32 +IFORM: VPMOVSDW_YMMi16_MASKmskw_ZMMi32_AVX512 +} + + +# EMITTING VPMOVSDW (VPMOVSDW-512-2) +{ +ICLASS: VPMOVSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x23 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:i16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zi32 +IFORM: VPMOVSDW_MEMi16_MASKmskw_ZMMi32_AVX512 +} + + +# EMITTING VPMOVSQB (VPMOVSQB-512-1) +{ +ICLASS: VPMOVSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x22 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zi64 +IFORM: VPMOVSQB_XMMi8_MASKmskw_ZMMi64_AVX512 +} + + +# EMITTING VPMOVSQB (VPMOVSQB-512-2) +{ +ICLASS: VPMOVSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x22 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:q:i8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zi64 +IFORM: VPMOVSQB_MEMi8_MASKmskw_ZMMi64_AVX512 +} + + +# EMITTING VPMOVSQD (VPMOVSQD-512-1) +{ +ICLASS: VPMOVSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zi64 +IFORM: VPMOVSQD_YMMi32_MASKmskw_ZMMi64_AVX512 +} + + +# EMITTING VPMOVSQD (VPMOVSQD-512-2) +{ +ICLASS: VPMOVSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x25 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:i32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zi64 +IFORM: VPMOVSQD_MEMi32_MASKmskw_ZMMi64_AVX512 +} + + +# EMITTING VPMOVSQW (VPMOVSQW-512-1) +{ +ICLASS: VPMOVSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x24 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zi64 +IFORM: VPMOVSQW_XMMi16_MASKmskw_ZMMi64_AVX512 +} + + +# EMITTING VPMOVSQW (VPMOVSQW-512-2) +{ +ICLASS: VPMOVSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x24 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:dq:i16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zi64 +IFORM: VPMOVSQW_MEMi16_MASKmskw_ZMMi64_AVX512 +} + + +# EMITTING VPMOVSXBD (VPMOVSXBD-512-1) +{ +ICLASS: VPMOVSXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x21 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBD_ZMMi32_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x21 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i8 +IFORM: VPMOVSXBD_ZMMi32_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBQ (VPMOVSXBQ-512-1) +{ +ICLASS: VPMOVSXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x22 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBQ_ZMMi64_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x22 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i8 +IFORM: VPMOVSXBQ_ZMMi64_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXDQ (VPMOVSXDQ-512-1) +{ +ICLASS: VPMOVSXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i32 +IFORM: VPMOVSXDQ_ZMMi64_MASKmskw_YMMi32_AVX512 +} + +{ +ICLASS: VPMOVSXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x25 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i32 +IFORM: VPMOVSXDQ_ZMMi64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPMOVSXWD (VPMOVSXWD-512-1) +{ +ICLASS: VPMOVSXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i16 +IFORM: VPMOVSXWD_ZMMi32_MASKmskw_YMMi16_AVX512 +} + +{ +ICLASS: VPMOVSXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x23 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i16 +IFORM: VPMOVSXWD_ZMMi32_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVSXWQ (VPMOVSXWQ-512-1) +{ +ICLASS: VPMOVSXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x24 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVSXWQ_ZMMi64_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVSXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x24 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i16 +IFORM: VPMOVSXWQ_ZMMi64_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVUSDB (VPMOVUSDB-512-1) +{ +ICLASS: VPMOVUSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VPMOVUSDB_XMMu8_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVUSDB (VPMOVUSDB-512-2) +{ +ICLASS: VPMOVUSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x11 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:dq:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VPMOVUSDB_MEMu8_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVUSDW (VPMOVUSDW-512-1) +{ +ICLASS: VPMOVUSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x13 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 +IFORM: VPMOVUSDW_YMMu16_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVUSDW (VPMOVUSDW-512-2) +{ +ICLASS: VPMOVUSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x13 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:u16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 +IFORM: VPMOVUSDW_MEMu16_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVUSQB (VPMOVUSQB-512-1) +{ +ICLASS: VPMOVUSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPMOVUSQB_XMMu8_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVUSQB (VPMOVUSQB-512-2) +{ +ICLASS: VPMOVUSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x12 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:q:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPMOVUSQB_MEMu8_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVUSQD (VPMOVUSQD-512-1) +{ +ICLASS: VPMOVUSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPMOVUSQD_YMMu32_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVUSQD (VPMOVUSQD-512-2) +{ +ICLASS: VPMOVUSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x15 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPMOVUSQD_MEMu32_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVUSQW (VPMOVUSQW-512-1) +{ +ICLASS: VPMOVUSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 +IFORM: VPMOVUSQW_XMMu16_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVUSQW (VPMOVUSQW-512-2) +{ +ICLASS: VPMOVUSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x14 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:dq:u16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPMOVUSQW_MEMu16_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVZXBD (VPMOVZXBD-512-1) +{ +ICLASS: VPMOVZXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x31 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBD_ZMMi32_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x31 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i8 +IFORM: VPMOVZXBD_ZMMi32_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBQ (VPMOVZXBQ-512-1) +{ +ICLASS: VPMOVZXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x32 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBQ_ZMMi64_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x32 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i8 +IFORM: VPMOVZXBQ_ZMMi64_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXDQ (VPMOVZXDQ-512-1) +{ +ICLASS: VPMOVZXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x35 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i32 +IFORM: VPMOVZXDQ_ZMMi64_MASKmskw_YMMi32_AVX512 +} + +{ +ICLASS: VPMOVZXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x35 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i32 +IFORM: VPMOVZXDQ_ZMMi64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPMOVZXWD (VPMOVZXWD-512-1) +{ +ICLASS: VPMOVZXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x33 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i16 +IFORM: VPMOVZXWD_ZMMi32_MASKmskw_YMMi16_AVX512 +} + +{ +ICLASS: VPMOVZXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x33 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i16 +IFORM: VPMOVZXWD_ZMMi32_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVZXWQ (VPMOVZXWQ-512-1) +{ +ICLASS: VPMOVZXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x34 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVZXWQ_ZMMi64_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVZXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x34 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i16 +IFORM: VPMOVZXWQ_ZMMi64_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMULDQ (VPMULDQ-512-1) +{ +ICLASS: VPMULDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 REG3=ZMM_B3():r:zi32 +IFORM: VPMULDQ_ZMMi64_MASKmskw_ZMMi32_ZMMi32_AVX512 +} + +{ +ICLASS: VPMULDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION DOUBLE_WIDE_MEMOP MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x28 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMULDQ_ZMMi64_MASKmskw_ZMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMULLD (VPMULLD-512-1) +{ +ICLASS: VPMULLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x40 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPMULLD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPMULLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x40 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMULLD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMULUDQ (VPMULUDQ-512-1) +{ +ICLASS: VPMULUDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPMULUDQ_ZMMu64_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPMULUDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION DOUBLE_WIDE_MEMOP MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xF4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMULUDQ_ZMMu64_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPORD (VPORD-512-1) +{ +ICLASS: VPORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPORD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPORD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPORQ (VPORQ-512-1) +{ +ICLASS: VPORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPORQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPORQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPROLD (VPROLD-512-1) +{ +ICLASS: VPROLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b001] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPROLD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPROLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPROLD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPROLQ (VPROLQ-512-1) +{ +ICLASS: VPROLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b001] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPROLQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPROLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPROLQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPROLVD (VPROLVD-512-1) +{ +ICLASS: VPROLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPROLVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPROLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPROLVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPROLVQ (VPROLVQ-512-1) +{ +ICLASS: VPROLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPROLVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPROLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPROLVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPRORD (VPRORD-512-1) +{ +ICLASS: VPRORD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b000] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPRORD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPRORD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPRORD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPRORQ (VPRORQ-512-1) +{ +ICLASS: VPRORQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b000] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPRORQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPRORQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPRORQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPRORVD (VPRORVD-512-1) +{ +ICLASS: VPRORVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPRORVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPRORVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPRORVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPRORVQ (VPRORVQ-512-1) +{ +ICLASS: VPRORVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPRORVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPRORVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPRORVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSCATTERDD (VPSCATTERDD-512-1) +{ +ICLASS: VPSCATTERDD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA0 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:u32 REG0=MASKNOT0():rw:mskw REG1=ZMM_R3():r:zu32 +IFORM: VPSCATTERDD_MEMu32_MASKmskw_ZMMu32_AVX512_VL512 +} + + +# EMITTING VPSCATTERDQ (VPSCATTERDQ-512-1) +{ +ICLASS: VPSCATTERDQ +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA0 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:u64 REG0=MASKNOT0():rw:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPSCATTERDQ_MEMu64_MASKmskw_ZMMu64_AVX512_VL512 +} + + +# EMITTING VPSCATTERQD (VPSCATTERQD-512-1) +{ +ICLASS: VPSCATTERQD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA1 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:u32 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPSCATTERQD_MEMu32_MASKmskw_YMMu32_AVX512_VL512 +} + + +# EMITTING VPSCATTERQQ (VPSCATTERQQ-512-1) +{ +ICLASS: VPSCATTERQQ +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA1 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:u64 REG0=MASKNOT0():rw:mskw REG1=ZMM_R3():r:zu64 +IFORM: VPSCATTERQQ_MEMu64_MASKmskw_ZMMu64_AVX512_VL512 +} + + +# EMITTING VPSHUFD (VPSHUFD-512-1) +{ +ICLASS: VPSHUFD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPSHUFD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x70 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSHUFD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSLLD (VPSLLD-512-1) +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSLLD_ZMMu32_MASKmskw_ZMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:dq:u32 +IFORM: VPSLLD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSLLD (VPSLLD-512-2) +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPSLLD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSLLD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSLLQ (VPSLLQ-512-1) +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSLLQ_ZMMu64_MASKmskw_ZMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:dq:u64 +IFORM: VPSLLQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSLLQ (VPSLLQ-512-2) +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPSLLQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSLLQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSLLVD (VPSLLVD-512-1) +{ +ICLASS: VPSLLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x47 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPSLLVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPSLLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x47 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSLLVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSLLVQ (VPSLLVQ-512-1) +{ +ICLASS: VPSLLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x47 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPSLLVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPSLLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x47 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSLLVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRAD (VPSRAD-512-1) +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRAD_ZMMu32_MASKmskw_ZMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:dq:u32 +IFORM: VPSRAD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRAD (VPSRAD-512-2) +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPSRAD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRAD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSRAQ (VPSRAQ-512-1) +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRAQ_ZMMu64_MASKmskw_ZMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:dq:u64 +IFORM: VPSRAQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRAQ (VPSRAQ-512-2) +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPSRAQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRAQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSRAVD (VPSRAVD-512-1) +{ +ICLASS: VPSRAVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x46 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPSRAVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPSRAVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x46 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSRAVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRAVQ (VPSRAVQ-512-1) +{ +ICLASS: VPSRAVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x46 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPSRAVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPSRAVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x46 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSRAVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRLD (VPSRLD-512-1) +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRLD_ZMMu32_MASKmskw_ZMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:dq:u32 +IFORM: VPSRLD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRLD (VPSRLD-512-2) +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPSRLD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRLD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSRLQ (VPSRLQ-512-1) +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRLQ_ZMMu64_MASKmskw_ZMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:dq:u64 +IFORM: VPSRLQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRLQ (VPSRLQ-512-2) +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPSRLQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_N3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRLQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSRLVD (VPSRLVD-512-1) +{ +ICLASS: VPSRLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x45 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPSRLVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPSRLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x45 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSRLVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRLVQ (VPSRLVQ-512-1) +{ +ICLASS: VPSRLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x45 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPSRLVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPSRLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x45 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSRLVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSUBD (VPSUBD-512-1) +{ +ICLASS: VPSUBD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPSUBD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPSUBD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSUBD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSUBQ (VPSUBQ-512-1) +{ +ICLASS: VPSUBQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPSUBQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPSUBQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSUBQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPTERNLOGD (VPTERNLOGD-512-1) +{ +ICLASS: VPTERNLOGD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():rw:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VPTERNLOGD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPTERNLOGD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x25 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPTERNLOGD_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPTERNLOGQ (VPTERNLOGQ-512-1) +{ +ICLASS: VPTERNLOGQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VPTERNLOGQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPTERNLOGQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x25 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPTERNLOGQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPTESTMD (VPTESTMD-512-1) +{ +ICLASS: VPTESTMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPTESTMD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPTESTMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPTESTMD_MASKmskw_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPTESTMQ (VPTESTMQ-512-1) +{ +ICLASS: VPTESTMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPTESTMQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPTESTMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPTESTMQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPTESTNMD (VPTESTNMD-512-1) +{ +ICLASS: VPTESTNMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPTESTNMD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPTESTNMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPTESTNMD_MASKmskw_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPTESTNMQ (VPTESTNMQ-512-1) +{ +ICLASS: VPTESTNMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPTESTNMQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPTESTNMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPTESTNMQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPUNPCKHDQ (VPUNPCKHDQ-512-1) +{ +ICLASS: VPUNPCKHDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPUNPCKHDQ_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPUNPCKHDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPUNPCKHDQ_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPUNPCKHQDQ (VPUNPCKHQDQ-512-1) +{ +ICLASS: VPUNPCKHQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6D V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPUNPCKHQDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPUNPCKHQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6D V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPUNPCKHQDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPUNPCKLDQ (VPUNPCKLDQ-512-1) +{ +ICLASS: VPUNPCKLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x62 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPUNPCKLDQ_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPUNPCKLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x62 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPUNPCKLDQ_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPUNPCKLQDQ (VPUNPCKLQDQ-512-1) +{ +ICLASS: VPUNPCKLQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6C V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPUNPCKLQDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPUNPCKLQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6C V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPUNPCKLQDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPXORD (VPXORD-512-1) +{ +ICLASS: VPXORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPXORD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPXORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPXORD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPXORQ (VPXORQ-512-1) +{ +ICLASS: VPXORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPXORQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPXORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPXORQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VRCP14PD (VRCP14PD-512-1) +{ +ICLASS: VRCP14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VRCP14PD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VRCP14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRCP14PD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VRCP14PS (VRCP14PS-512-1) +{ +ICLASS: VRCP14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VRCP14PS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VRCP14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRCP14PS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VRCP14SD (VRCP14SD-128-1) +{ +ICLASS: VRCP14SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x4D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VRCP14SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VRCP14SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x4D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VRCP14SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VRCP14SS (VRCP14SS-128-1) +{ +ICLASS: VRCP14SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x4D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VRCP14SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VRCP14SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x4D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VRCP14SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VRNDSCALEPD (VRNDSCALEPD-512-1) +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x09 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VRNDSCALEPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x09 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VRNDSCALEPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x09 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VRNDSCALEPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRNDSCALEPS (VRNDSCALEPS-512-1) +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x08 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VRNDSCALEPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x08 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VRNDSCALEPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x08 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VRNDSCALEPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRNDSCALESD (VRNDSCALESD-128-1) +{ +ICLASS: VRNDSCALESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x0B V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VRNDSCALESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x0B V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VRNDSCALESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x0B V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 IMM0:r:b +IFORM: VRNDSCALESD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRNDSCALESS (VRNDSCALESS-128-1) +{ +ICLASS: VRNDSCALESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x0A V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VRNDSCALESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x0A V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VRNDSCALESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x0A V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VRNDSCALESS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRSQRT14PD (VRSQRT14PD-512-1) +{ +ICLASS: VRSQRT14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VRSQRT14PD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VRSQRT14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRSQRT14PD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VRSQRT14PS (VRSQRT14PS-512-1) +{ +ICLASS: VRSQRT14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VRSQRT14PS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VRSQRT14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRSQRT14PS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VRSQRT14SD (VRSQRT14SD-128-1) +{ +ICLASS: VRSQRT14SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x4F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VRSQRT14SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VRSQRT14SD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x4F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VRSQRT14SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VRSQRT14SS (VRSQRT14SS-128-1) +{ +ICLASS: VRSQRT14SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x4F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VRSQRT14SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VRSQRT14SS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E10 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x4F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VRSQRT14SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VSCALEFPD (VSCALEFPD-512-1) +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VSCALEFPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VSCALEFPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSCALEFPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VSCALEFPS (VSCALEFPS-512-1) +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VSCALEFPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VSCALEFPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSCALEFPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VSCALEFSD (VSCALEFSD-128-1) +{ +ICLASS: VSCALEFSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x2D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSCALEFSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSCALEFSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x2D V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSCALEFSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSCALEFSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x2D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VSCALEFSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VSCALEFSS (VSCALEFSS-128-1) +{ +ICLASS: VSCALEFSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x2D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSCALEFSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSCALEFSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x2D V66 V0F38 MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSCALEFSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSCALEFSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x2D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VSCALEFSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VSCATTERDPD (VSCATTERDPD-512-1) +{ +ICLASS: VSCATTERDPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA2 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:f64 REG0=MASKNOT0():rw:mskw REG1=ZMM_R3():r:zf64 +IFORM: VSCATTERDPD_MEMf64_MASKmskw_ZMMf64_AVX512_VL512 +} + + +# EMITTING VSCATTERDPS (VSCATTERDPS-512-1) +{ +ICLASS: VSCATTERDPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA2 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:f32 REG0=MASKNOT0():rw:mskw REG1=ZMM_R3():r:zf32 +IFORM: VSCATTERDPS_MEMf32_MASKmskw_ZMMf32_AVX512_VL512 +} + + +# EMITTING VSCATTERQPD (VSCATTERQPD-512-1) +{ +ICLASS: VSCATTERQPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA3 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W1 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:zd:f64 REG0=MASKNOT0():rw:mskw REG1=ZMM_R3():r:zf64 +IFORM: VSCATTERQPD_MEMf64_MASKmskw_ZMMf64_AVX512_VL512 +} + + +# EMITTING VSCATTERQPS (VSCATTERQPS-512-1) +{ +ICLASS: VSCATTERQPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA3 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL512 W0 RM=4 UISA_VMODRM_ZMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:f32 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:f32 +IFORM: VSCATTERQPS_MEMf32_MASKmskw_YMMf32_AVX512_VL512 +} + + +# EMITTING VSHUFF32X4 (VSHUFF32X4-512-1) +{ +ICLASS: VSHUFF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VSHUFF32X4_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x23 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFF32X4_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VSHUFF64X2 (VSHUFF64X2-512-1) +{ +ICLASS: VSHUFF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VSHUFF64X2_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x23 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFF64X2_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VSHUFI32X4 (VSHUFI32X4-512-1) +{ +ICLASS: VSHUFI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 IMM0:r:b +IFORM: VSHUFI32X4_ZMMu32_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x43 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFI32X4_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VSHUFI64X2 (VSHUFI64X2-512-1) +{ +ICLASS: VSHUFI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 IMM0:r:b +IFORM: VSHUFI64X2_ZMMu64_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x43 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFI64X2_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VSHUFPD (VSHUFPD-512-1) +{ +ICLASS: VSHUFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VSHUFPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VSHUFPS (VSHUFPS-512-1) +{ +ICLASS: VSHUFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC6 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VSHUFPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC6 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VSQRTPD (VSQRTPD-512-1) +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VSQRTPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VSQRTPD_ZMMf64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x51 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSQRTPD_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VSQRTPS (VSQRTPS-512-1) +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VSQRTPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 +IFORM: VSQRTPS_ZMMf32_MASKmskw_ZMMf32_AVX512 +} + +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x51 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSQRTPS_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VSQRTSD (VSQRTSD-128-1) +{ +ICLASS: VSQRTSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSQRTSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSQRTSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSQRTSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSQRTSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x51 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VSQRTSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VSQRTSS (VSQRTSS-128-1) +{ +ICLASS: VSQRTSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSQRTSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSQRTSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSQRTSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSQRTSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x51 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VSQRTSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VSUBPD (VSUBPD-512-1) +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VSUBPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VSUBPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5C V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSUBPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VSUBPS (VSUBPS-512-1) +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VSUBPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VSUBPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5C VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSUBPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VSUBSD (VSUBSD-128-1) +{ +ICLASS: VSUBSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5C VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSUBSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSUBSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5C VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W1 +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSUBSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSUBSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5C VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 +IFORM: VSUBSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VSUBSS (VSUBSS-128-1) +{ +ICLASS: VSUBSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5C VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSUBSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSUBSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x5C VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() AVX512_ROUND() W0 +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSUBSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSUBSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x5C VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 +IFORM: VSUBSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VUCOMISD (VUCOMISD-128-1) +{ +ICLASS: VUCOMISD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f64 REG1=XMM_B3():r:dq:f64 +IFORM: VUCOMISD_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VUCOMISD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2E V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f64:TXT=SAESTR REG1=XMM_B3():r:dq:f64 +IFORM: VUCOMISD_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VUCOMISD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_SCALAR +PATTERN: EVV 0x2E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():r:dq:f64 MEM0:r:q:f64 +IFORM: VUCOMISD_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VUCOMISS (VUCOMISS-128-1) +{ +ICLASS: VUCOMISS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2E VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f32 REG1=XMM_B3():r:dq:f32 +IFORM: VUCOMISS_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VUCOMISS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR +PATTERN: EVV 0x2E VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():r:dq:f32:TXT=SAESTR REG1=XMM_B3():r:dq:f32 +IFORM: VUCOMISS_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VUCOMISS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_SCALAR +EXCEPTIONS: AVX512-E3NF +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-mod of-0 af-0 sf-0 ] +ATTRIBUTES: MXCSR SIMD_SCALAR DISP8_SCALAR +PATTERN: EVV 0x2E VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():r:dq:f32 MEM0:r:d:f32 +IFORM: VUCOMISS_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VUNPCKHPD (VUNPCKHPD-512-1) +{ +ICLASS: VUNPCKHPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VUNPCKHPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VUNPCKHPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VUNPCKHPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VUNPCKHPS (VUNPCKHPS-512-1) +{ +ICLASS: VUNPCKHPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VUNPCKHPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VUNPCKHPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VUNPCKHPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VUNPCKLPD (VUNPCKLPD-512-1) +{ +ICLASS: VUNPCKLPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VUNPCKLPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VUNPCKLPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VUNPCKLPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VUNPCKLPS (VUNPCKLPS-512-1) +{ +ICLASS: VUNPCKLPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VUNPCKLPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VUNPCKLPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VUNPCKLPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +AVX_INSTRUCTIONS():: +# EMITTING KANDNW (KANDNW-256-1) +{ +ICLASS: KANDNW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x42 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDNW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDW (KANDW-256-1) +{ +ICLASS: KANDW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x41 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KMOVW (KMOVW-128-1) +{ +ICLASS: KMOVW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw:u16 +IFORM: KMOVW_MASKmskw_MASKu16_AVX512 +} + +{ +ICLASS: KMOVW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw MEM0:r:wrd:u16 +IFORM: KMOVW_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING KMOVW (KMOVW-128-2) +{ +ICLASS: KMOVW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x91 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W0 NOVSR +OPERANDS: MEM0:w:wrd:u16 REG0=MASK_R():r:mskw +IFORM: KMOVW_MEMu16_MASKmskw_AVX512 +} + + +# EMITTING KMOVW (KMOVW-128-3) +{ +ICLASS: KMOVW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x92 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=GPR32_B():r:d:u32 +IFORM: KMOVW_MASKmskw_GPR32u32_AVX512 +} + + +# EMITTING KMOVW (KMOVW-128-4) +{ +ICLASS: KMOVW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x93 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=MASK_B():r:mskw +IFORM: KMOVW_GPR32u32_MASKmskw_AVX512 +} + + +# EMITTING KNOTW (KNOTW-128-1) +{ +ICLASS: KNOTW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x44 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw +IFORM: KNOTW_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORTESTW (KORTESTW-128-1) +{ +ICLASS: KORTESTW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x98 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KORTESTW_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORW (KORW-256-1) +{ +ICLASS: KORW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x45 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KORW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KSHIFTLW (KSHIFTLW-128-1) +{ +ICLASS: KSHIFTLW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x32 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTLW_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KSHIFTRW (KSHIFTRW-128-1) +{ +ICLASS: KSHIFTRW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x30 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTRW_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KUNPCKBW (KUNPCKBW-256-1) +{ +ICLASS: KUNPCKBW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4B V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KUNPCKBW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXNORW (KXNORW-256-1) +{ +ICLASS: KXNORW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x46 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXNORW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXORW (KXORW-256-1) +{ +ICLASS: KXORW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512F_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x47 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXORW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + + + +###FILE: ../xed/datafiles/avx512cd/vconflict-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VPBROADCASTMB2Q (VPBROADCASTMB2Q-512-1) +{ +ICLASS: VPBROADCASTMB2Q +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +PATTERN: EVV 0x2A VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK_B():r:mskw:u64 EMX_BROADCAST_1TO8_8 +IFORM: VPBROADCASTMB2Q_ZMMu64_MASKu64_AVX512CD +} + + +# EMITTING VPBROADCASTMW2D (VPBROADCASTMW2D-512-1) +{ +ICLASS: VPBROADCASTMW2D +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +PATTERN: EVV 0x3A VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK_B():r:mskw:u32 EMX_BROADCAST_1TO16_16 +IFORM: VPBROADCASTMW2D_ZMMu32_MASKu32_AVX512CD +} + + +# EMITTING VPCONFLICTD (VPCONFLICTD-512-1) +{ +ICLASS: VPCONFLICTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VPCONFLICTD_ZMMu32_MASKmskw_ZMMu32_AVX512CD +} + +{ +ICLASS: VPCONFLICTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPCONFLICTD_ZMMu32_MASKmskw_MEMu32_AVX512CD +} + + +# EMITTING VPCONFLICTQ (VPCONFLICTQ-512-1) +{ +ICLASS: VPCONFLICTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VPCONFLICTQ_ZMMu64_MASKmskw_ZMMu64_AVX512CD +} + +{ +ICLASS: VPCONFLICTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPCONFLICTQ_ZMMu64_MASKmskw_MEMu64_AVX512CD +} + + +# EMITTING VPLZCNTD (VPLZCNTD-512-1) +{ +ICLASS: VPLZCNTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x44 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu32 +IFORM: VPLZCNTD_ZMMu32_MASKmskw_ZMMu32_AVX512CD +} + +{ +ICLASS: VPLZCNTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x44 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPLZCNTD_ZMMu32_MASKmskw_MEMu32_AVX512CD +} + + +# EMITTING VPLZCNTQ (VPLZCNTQ-512-1) +{ +ICLASS: VPLZCNTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x44 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VPLZCNTQ_ZMMu64_MASKmskw_ZMMu64_AVX512CD +} + +{ +ICLASS: VPLZCNTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x44 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPLZCNTQ_ZMMu64_MASKmskw_MEMu64_AVX512CD +} + + + + +###FILE: ../xed/datafiles/avx512-skx/skx-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VADDPD (VADDPD-128-1) +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VADDPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x58 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VADDPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VADDPD (VADDPD-256-1) +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VADDPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VADDPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x58 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VADDPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VADDPS (VADDPS-128-1) +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VADDPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x58 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VADDPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VADDPS (VADDPS-256-1) +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x58 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VADDPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VADDPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x58 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VADDPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VALIGND (VALIGND-128-1) +{ +ICLASS: VALIGND +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x03 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VALIGND_XMMu32_MASKmskw_XMMu32_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VALIGND +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x03 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VALIGND_XMMu32_MASKmskw_XMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VALIGND (VALIGND-256-1) +{ +ICLASS: VALIGND +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x03 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VALIGND_YMMu32_MASKmskw_YMMu32_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VALIGND +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x03 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VALIGND_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VALIGNQ (VALIGNQ-128-1) +{ +ICLASS: VALIGNQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x03 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VALIGNQ_XMMu64_MASKmskw_XMMu64_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VALIGNQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x03 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VALIGNQ_XMMu64_MASKmskw_XMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VALIGNQ (VALIGNQ-256-1) +{ +ICLASS: VALIGNQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x03 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VALIGNQ_YMMu64_MASKmskw_YMMu64_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VALIGNQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x03 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VALIGNQ_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VANDNPD (VANDNPD-128-1) +{ +ICLASS: VANDNPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VANDNPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VANDNPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VANDNPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VANDNPD (VANDNPD-256-1) +{ +ICLASS: VANDNPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VANDNPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VANDNPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VANDNPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VANDNPD (VANDNPD-512-1) +{ +ICLASS: VANDNPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VANDNPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VANDNPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VANDNPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VANDNPS (VANDNPS-128-1) +{ +ICLASS: VANDNPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VANDNPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VANDNPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VANDNPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VANDNPS (VANDNPS-256-1) +{ +ICLASS: VANDNPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VANDNPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VANDNPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VANDNPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VANDNPS (VANDNPS-512-1) +{ +ICLASS: VANDNPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x55 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VANDNPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VANDNPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x55 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VANDNPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VANDPD (VANDPD-128-1) +{ +ICLASS: VANDPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VANDPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VANDPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VANDPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VANDPD (VANDPD-256-1) +{ +ICLASS: VANDPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VANDPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VANDPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VANDPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VANDPD (VANDPD-512-1) +{ +ICLASS: VANDPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VANDPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VANDPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VANDPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VANDPS (VANDPS-128-1) +{ +ICLASS: VANDPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x54 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VANDPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VANDPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VANDPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VANDPS (VANDPS-256-1) +{ +ICLASS: VANDPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x54 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VANDPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VANDPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VANDPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VANDPS (VANDPS-512-1) +{ +ICLASS: VANDPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x54 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VANDPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VANDPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VANDPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VBLENDMPD (VBLENDMPD-128-1) +{ +ICLASS: VBLENDMPD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x65 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VBLENDMPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VBLENDMPD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x65 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VBLENDMPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VBLENDMPD (VBLENDMPD-256-1) +{ +ICLASS: VBLENDMPD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x65 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VBLENDMPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VBLENDMPD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x65 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VBLENDMPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VBLENDMPS (VBLENDMPS-128-1) +{ +ICLASS: VBLENDMPS +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x65 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VBLENDMPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VBLENDMPS +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x65 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VBLENDMPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VBLENDMPS (VBLENDMPS-256-1) +{ +ICLASS: VBLENDMPS +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x65 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VBLENDMPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VBLENDMPS +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x65 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VBLENDMPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF32X2 (VBROADCASTF32X2-256-1) +{ +ICLASS: VBROADCASTF32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 EMX_BROADCAST_2TO8_32 +IFORM: VBROADCASTF32X2_YMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VBROADCASTF32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x19 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f32 EMX_BROADCAST_2TO8_32 +IFORM: VBROADCASTF32X2_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF32X2 (VBROADCASTF32X2-512-1) +{ +ICLASS: VBROADCASTF32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 EMX_BROADCAST_2TO16_32 +IFORM: VBROADCASTF32X2_ZMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VBROADCASTF32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x19 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f32 EMX_BROADCAST_2TO16_32 +IFORM: VBROADCASTF32X2_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF32X4 (VBROADCASTF32X4-256-1) +{ +ICLASS: VBROADCASTF32X4 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x1A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 EMX_BROADCAST_4TO8_32 +IFORM: VBROADCASTF32X4_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF32X8 (VBROADCASTF32X8-512-1) +{ +ICLASS: VBROADCASTF32X8 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE8 +PATTERN: EVV 0x1B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f32 EMX_BROADCAST_8TO16_32 +IFORM: VBROADCASTF32X8_ZMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTF64X2 (VBROADCASTF64X2-256-1) +{ +ICLASS: VBROADCASTF64X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x1A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f64 EMX_BROADCAST_2TO4_64 +IFORM: VBROADCASTF64X2_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VBROADCASTF64X2 (VBROADCASTF64X2-512-1) +{ +ICLASS: VBROADCASTF64X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x1A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f64 EMX_BROADCAST_2TO8_64 +IFORM: VBROADCASTF64X2_ZMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VBROADCASTI32X2 (VBROADCASTI32X2-128-1) +{ +ICLASS: VBROADCASTI32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 EMX_BROADCAST_2TO4_32 +IFORM: VBROADCASTI32X2_XMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VBROADCASTI32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x59 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:u32 EMX_BROADCAST_2TO4_32 +IFORM: VBROADCASTI32X2_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VBROADCASTI32X2 (VBROADCASTI32X2-256-1) +{ +ICLASS: VBROADCASTI32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 EMX_BROADCAST_2TO8_32 +IFORM: VBROADCASTI32X2_YMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VBROADCASTI32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x59 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:u32 EMX_BROADCAST_2TO8_32 +IFORM: VBROADCASTI32X2_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VBROADCASTI32X2 (VBROADCASTI32X2-512-1) +{ +ICLASS: VBROADCASTI32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 EMX_BROADCAST_2TO16_32 +IFORM: VBROADCASTI32X2_ZMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VBROADCASTI32X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x59 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE2() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:u32 EMX_BROADCAST_2TO16_32 +IFORM: VBROADCASTI32X2_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VBROADCASTI32X4 (VBROADCASTI32X4-256-1) +{ +ICLASS: VBROADCASTI32X4 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x5A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u32 EMX_BROADCAST_4TO8_32 +IFORM: VBROADCASTI32X4_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VBROADCASTI32X8 (VBROADCASTI32X8-512-1) +{ +ICLASS: VBROADCASTI32X8 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE8 +PATTERN: EVV 0x5B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u32 EMX_BROADCAST_8TO16_32 +IFORM: VBROADCASTI32X8_ZMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VBROADCASTI64X2 (VBROADCASTI64X2-256-1) +{ +ICLASS: VBROADCASTI64X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x5A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u64 EMX_BROADCAST_2TO4_64 +IFORM: VBROADCASTI64X2_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VBROADCASTI64X2 (VBROADCASTI64X2-512-1) +{ +ICLASS: VBROADCASTI64X2 +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x5A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u64 EMX_BROADCAST_2TO8_64 +IFORM: VBROADCASTI64X2_ZMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VBROADCASTSD (VBROADCASTSD-256-1) +{ +ICLASS: VBROADCASTSD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x19 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE1() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f64 EMX_BROADCAST_1TO4_64 +IFORM: VBROADCASTSD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VBROADCASTSD (VBROADCASTSD-256-2) +{ +ICLASS: VBROADCASTSD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 EMX_BROADCAST_1TO4_64 +IFORM: VBROADCASTSD_YMMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VBROADCASTSS (VBROADCASTSS-128-1) +{ +ICLASS: VBROADCASTSS +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x18 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:f32 EMX_BROADCAST_1TO4_32 +IFORM: VBROADCASTSS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTSS (VBROADCASTSS-128-2) +{ +ICLASS: VBROADCASTSS +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 EMX_BROADCAST_1TO4_32 +IFORM: VBROADCASTSS_XMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VBROADCASTSS (VBROADCASTSS-256-1) +{ +ICLASS: VBROADCASTSS +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x18 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:f32 EMX_BROADCAST_1TO8_32 +IFORM: VBROADCASTSS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VBROADCASTSS (VBROADCASTSS-256-2) +{ +ICLASS: VBROADCASTSS +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 EMX_BROADCAST_1TO8_32 +IFORM: VBROADCASTSS_YMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VCMPPD (VCMPPD-128-1) +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VCMPPD (VCMPPD-256-1) +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_YMMf64_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VCMPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VCMPPD_MASKmskw_MASKmskw_YMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VCMPPS (VCMPPS-128-1) +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC2 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VCMPPS (VCMPPS-256-1) +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xC2 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_YMMf32_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VCMPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC2 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VCMPPS_MASKmskw_MASKmskw_YMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VCOMPRESSPD (VCOMPRESSPD-128-1) +{ +ICLASS: VCOMPRESSPD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:f64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f64 +IFORM: VCOMPRESSPD_MEMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VCOMPRESSPD (VCOMPRESSPD-128-2) +{ +ICLASS: VCOMPRESSPD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f64 +IFORM: VCOMPRESSPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VCOMPRESSPD (VCOMPRESSPD-256-1) +{ +ICLASS: VCOMPRESSPD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:f64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f64 +IFORM: VCOMPRESSPD_MEMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VCOMPRESSPD (VCOMPRESSPD-256-2) +{ +ICLASS: VCOMPRESSPD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f64 +IFORM: VCOMPRESSPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VCOMPRESSPS (VCOMPRESSPS-128-1) +{ +ICLASS: VCOMPRESSPS +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:f32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VCOMPRESSPS_MEMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VCOMPRESSPS (VCOMPRESSPS-128-2) +{ +ICLASS: VCOMPRESSPS +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f32 +IFORM: VCOMPRESSPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VCOMPRESSPS (VCOMPRESSPS-256-1) +{ +ICLASS: VCOMPRESSPS +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:f32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f32 +IFORM: VCOMPRESSPS_MEMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VCOMPRESSPS (VCOMPRESSPS-256-2) +{ +ICLASS: VCOMPRESSPS +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f32 +IFORM: VCOMPRESSPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VCVTDQ2PD (VCVTDQ2PD-128-1) +{ +ICLASS: VCVTDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VCVTDQ2PD_XMMf64_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VCVTDQ2PD_XMMf64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VCVTDQ2PD (VCVTDQ2PD-256-1) +{ +ICLASS: VCVTDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VCVTDQ2PD_YMMf64_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VCVTDQ2PD_YMMf64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VCVTDQ2PS (VCVTDQ2PS-128-1) +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VCVTDQ2PS_XMMf32_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VCVTDQ2PS_XMMf32_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VCVTDQ2PS (VCVTDQ2PS-256-1) +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i32 +IFORM: VCVTDQ2PS_YMMf32_MASKmskw_YMMi32_AVX512 +} + +{ +ICLASS: VCVTDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VCVTDQ2PS_YMMf32_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VCVTPD2DQ (VCVTPD2DQ-128-1) +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTPD2DQ_XMMi32_MASKmskw_XMMf64_AVX512_VL128 +} + +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VCVTPD2DQ (VCVTPD2DQ-256-1) +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTPD2DQ_XMMi32_MASKmskw_YMMf64_AVX512_VL256 +} + +{ +ICLASS: VCVTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VCVTPD2PS (VCVTPD2PS-128-1) +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTPD2PS_XMMf32_MASKmskw_XMMf64_AVX512_VL128 +} + +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2PS_XMMf32_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VCVTPD2PS (VCVTPD2PS-256-1) +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTPD2PS_XMMf32_MASKmskw_YMMf64_AVX512_VL256 +} + +{ +ICLASS: VCVTPD2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2PS_XMMf32_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VCVTPD2QQ (VCVTPD2QQ-128-1) +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTPD2QQ_XMMi64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2QQ_XMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTPD2QQ (VCVTPD2QQ-256-1) +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTPD2QQ_YMMi64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2QQ_YMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTPD2QQ (VCVTPD2QQ-512-1) +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2QQ_ZMMi64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2QQ_ZMMi64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2QQ_ZMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTPD2UDQ (VCVTPD2UDQ-128-1) +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTPD2UDQ_XMMu32_MASKmskw_XMMf64_AVX512_VL128 +} + +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VCVTPD2UDQ (VCVTPD2UDQ-256-1) +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTPD2UDQ_XMMu32_MASKmskw_YMMf64_AVX512_VL256 +} + +{ +ICLASS: VCVTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VCVTPD2UQQ (VCVTPD2UQQ-128-1) +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTPD2UQQ_XMMu64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2UQQ_XMMu64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTPD2UQQ (VCVTPD2UQQ-256-1) +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTPD2UQQ_YMMu64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2UQQ_YMMu64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTPD2UQQ (VCVTPD2UQQ-512-1) +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2UQQ_ZMMu64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTPD2UQQ_ZMMu64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTPD2UQQ_ZMMu64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTPH2PS (VCVTPH2PS-128-1) +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x13 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f16 +IFORM: VCVTPH2PS_XMMf32_MASKmskw_XMMf16_AVX512 +} + +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x13 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f16 +IFORM: VCVTPH2PS_XMMf32_MASKmskw_MEMf16_AVX512 +} + + +# EMITTING VCVTPH2PS (VCVTPH2PS-256-1) +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x13 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f16 +IFORM: VCVTPH2PS_YMMf32_MASKmskw_XMMf16_AVX512 +} + +{ +ICLASS: VCVTPH2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E11 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x13 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f16 +IFORM: VCVTPH2PS_YMMf32_MASKmskw_MEMf16_AVX512 +} + + +# EMITTING VCVTPS2DQ (VCVTPS2DQ-128-1) +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2DQ_XMMi32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2DQ_XMMi32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2DQ (VCVTPS2DQ-256-1) +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2DQ_YMMi32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2DQ_YMMi32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2PD (VCVTPS2PD-128-1) +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2PD_XMMf64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x5A VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2PD_XMMf64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2PD (VCVTPS2PD-256-1) +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5A VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2PD_YMMf64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x5A VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2PD_YMMf64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2PH (VCVTPS2PH-128-1) +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:f16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f32 IMM0:r:b +IFORM: VCVTPS2PH_XMMf16_MASKmskw_XMMf32_IMM8_AVX512 +} + + +# EMITTING VCVTPS2PH (VCVTPS2PH-128-2) +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x1D V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:f16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f32 IMM0:r:b +IFORM: VCVTPS2PH_MEMf16_MASKmskw_XMMf32_IMM8_AVX512 +} + + +# EMITTING VCVTPS2PH (VCVTPS2PH-256-1) +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:f16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f32 IMM0:r:b +IFORM: VCVTPS2PH_XMMf16_MASKmskw_YMMf32_IMM8_AVX512 +} + + +# EMITTING VCVTPS2PH (VCVTPS2PH-256-2) +{ +ICLASS: VCVTPS2PH +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E11NF +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x1D V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:f16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f32 IMM0:r:b +IFORM: VCVTPS2PH_MEMf16_MASKmskw_YMMf32_IMM8_AVX512 +} + + +# EMITTING VCVTPS2QQ (VCVTPS2QQ-128-1) +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2QQ_XMMi64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2QQ_XMMi64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2QQ (VCVTPS2QQ-256-1) +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2QQ_YMMi64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2QQ_YMMi64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2QQ (VCVTPS2QQ-512-1) +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2QQ_ZMMi64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2QQ_ZMMi64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2QQ_ZMMi64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2UDQ (VCVTPS2UDQ-128-1) +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2UDQ_XMMu32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2UDQ_XMMu32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2UDQ (VCVTPS2UDQ-256-1) +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2UDQ_YMMu32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x79 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2UDQ_YMMu32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2UQQ (VCVTPS2UQQ-128-1) +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2UQQ_XMMu64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x79 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2UQQ_XMMu64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2UQQ (VCVTPS2UQQ-256-1) +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTPS2UQQ_YMMu64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x79 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2UQQ_YMMu64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTPS2UQQ (VCVTPS2UQQ-512-1) +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2UQQ_ZMMu64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTPS2UQQ_ZMMu64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x79 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTPS2UQQ_ZMMu64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTQQ2PD (VCVTQQ2PD-128-1) +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTQQ2PD_XMMi64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTQQ2PD_XMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTQQ2PD (VCVTQQ2PD-256-1) +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTQQ2PD_YMMi64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTQQ2PD_YMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTQQ2PD (VCVTQQ2PD-512-1) +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTQQ2PD_ZMMi64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTQQ2PD_ZMMi64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTQQ2PD_ZMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTQQ2PS (VCVTQQ2PS-128-1) +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VCVTQQ2PS_XMMf32_MASKmskw_XMMu64_AVX512_VL128 +} + +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL128 +} + + +# EMITTING VCVTQQ2PS (VCVTQQ2PS-256-1) +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VCVTQQ2PS_XMMf32_MASKmskw_YMMu64_AVX512_VL256 +} + +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL256 +} + + +# EMITTING VCVTQQ2PS (VCVTQQ2PS-512-1) +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VCVTQQ2PS_YMMf32_MASKmskw_ZMMu64_AVX512_VL512 +} + +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VNP V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VCVTQQ2PS_YMMf32_MASKmskw_ZMMu64_AVX512_VL512 +} + +{ +ICLASS: VCVTQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTQQ2PS_YMMf32_MASKmskw_MEMu64_AVX512_VL512 +} + + +# EMITTING VCVTTPD2DQ (VCVTTPD2DQ-128-1) +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTTPD2DQ_XMMi32_MASKmskw_XMMf64_AVX512_VL128 +} + +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VCVTTPD2DQ (VCVTTPD2DQ-256-1) +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xE6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTTPD2DQ_XMMi32_MASKmskw_YMMf64_AVX512_VL256 +} + +{ +ICLASS: VCVTTPD2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xE6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VCVTTPD2QQ (VCVTTPD2QQ-128-1) +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTTPD2QQ_XMMi64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2QQ_XMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTTPD2QQ (VCVTTPD2QQ-256-1) +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTTPD2QQ_YMMi64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2QQ_YMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTTPD2QQ (VCVTTPD2QQ-512-1) +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2QQ_ZMMi64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2QQ_ZMMi64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2QQ_ZMMi64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTTPD2UDQ (VCVTTPD2UDQ-128-1) +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTTPD2UDQ_XMMu32_MASKmskw_XMMf64_AVX512_VL128 +} + +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VCVTTPD2UDQ (VCVTTPD2UDQ-256-1) +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTTPD2UDQ_XMMu32_MASKmskw_YMMf64_AVX512_VL256 +} + +{ +ICLASS: VCVTTPD2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VCVTTPD2UQQ (VCVTTPD2UQQ-128-1) +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VCVTTPD2UQQ_XMMu64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2UQQ_XMMu64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTTPD2UQQ (VCVTTPD2UQQ-256-1) +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VCVTTPD2UQQ_YMMu64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2UQQ_YMMu64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTTPD2UQQ (VCVTTPD2UQQ-512-1) +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2UQQ_ZMMu64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 +IFORM: VCVTTPD2UQQ_ZMMu64_MASKmskw_ZMMf64_AVX512 +} + +{ +ICLASS: VCVTTPD2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VCVTTPD2UQQ_ZMMu64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VCVTTPS2DQ (VCVTTPS2DQ-128-1) +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTTPS2DQ_XMMi32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2DQ_XMMi32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2DQ (VCVTTPS2DQ-256-1) +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5B VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTTPS2DQ_YMMi32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2DQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5B VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2DQ_YMMi32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2QQ (VCVTTPS2QQ-128-1) +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTTPS2QQ_XMMi64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2QQ_XMMi64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2QQ (VCVTTPS2QQ-256-1) +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTTPS2QQ_YMMi64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2QQ_YMMi64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2QQ (VCVTTPS2QQ-512-1) +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTTPS2QQ_ZMMi64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTTPS2QQ_ZMMi64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2QQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zi64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2QQ_ZMMi64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2UDQ (VCVTTPS2UDQ-128-1) +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTTPS2UDQ_XMMu32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2UDQ_XMMu32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2UDQ (VCVTTPS2UDQ-256-1) +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTTPS2UDQ_YMMu32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UDQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x78 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2UDQ_YMMu32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2UQQ (VCVTTPS2UQQ-128-1) +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTTPS2UQQ_XMMu64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x78 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2UQQ_XMMu64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2UQQ (VCVTTPS2UQQ-256-1) +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VCVTTPS2UQQ_YMMu64_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x78 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2UQQ_YMMu64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTTPS2UQQ (VCVTTPS2UQQ-512-1) +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTTPS2UQQ_ZMMu64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VCVTTPS2UQQ_ZMMu64_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VCVTTPS2UQQ +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x78 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VCVTTPS2UQQ_ZMMu64_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VCVTUDQ2PD (VCVTUDQ2PD-128-1) +{ +ICLASS: VCVTUDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VCVTUDQ2PD_XMMf64_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VCVTUDQ2PD_XMMf64_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VCVTUDQ2PD (VCVTUDQ2PD-256-1) +{ +ICLASS: VCVTUDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VCVTUDQ2PD_YMMf64_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALF BROADCAST_ENABLED +PATTERN: EVV 0x7A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALF() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VCVTUDQ2PD_YMMf64_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VCVTUDQ2PS (VCVTUDQ2PS-128-1) +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VCVTUDQ2PS_XMMf32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VCVTUDQ2PS_XMMf32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VCVTUDQ2PS (VCVTUDQ2PS-256-1) +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VCVTUDQ2PS_YMMf32_MASKmskw_YMMu32_AVX512 +} + +{ +ICLASS: VCVTUDQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VCVTUDQ2PS_YMMf32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VCVTUQQ2PD (VCVTUQQ2PD-128-1) +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VCVTUQQ2PD_XMMf64_MASKmskw_XMMu64_AVX512 +} + +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTUQQ2PD_XMMf64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VCVTUQQ2PD (VCVTUQQ2PD-256-1) +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VCVTUQQ2PD_YMMf64_MASKmskw_YMMu64_AVX512 +} + +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTUQQ2PD_YMMf64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VCVTUQQ2PD (VCVTUQQ2PD-512-1) +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VCVTUQQ2PD_ZMMf64_MASKmskw_ZMMu64_AVX512 +} + +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF3 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VCVTUQQ2PD_ZMMf64_MASKmskw_ZMMu64_AVX512 +} + +{ +ICLASS: VCVTUQQ2PD +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTUQQ2PD_ZMMf64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VCVTUQQ2PS (VCVTUQQ2PS-128-1) +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VCVTUQQ2PS_XMMf32_MASKmskw_XMMu64_AVX512_VL128 +} + +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTUQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL128 +} + + +# EMITTING VCVTUQQ2PS (VCVTUQQ2PS-256-1) +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VCVTUQQ2PS_XMMf32_MASKmskw_YMMu64_AVX512_VL256 +} + +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTUQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL256 +} + + +# EMITTING VCVTUQQ2PS (VCVTUQQ2PS-512-1) +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VCVTUQQ2PS_YMMf32_MASKmskw_ZMMu64_AVX512_VL512 +} + +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x7A VF2 V0F MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() AVX512_ROUND() W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32:TXT=ROUNDC REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu64 +IFORM: VCVTUQQ2PS_YMMf32_MASKmskw_ZMMu64_AVX512_VL512 +} + +{ +ICLASS: VCVTUQQ2PS +CPL: 3 +CATEGORY: CONVERT +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7A VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VCVTUQQ2PS_YMMf32_MASKmskw_MEMu64_AVX512_VL512 +} + + +# EMITTING VDBPSADBW (VDBPSADBW-128-1) +{ +ICLASS: VDBPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 IMM0:r:b +IFORM: VDBPSADBW_XMMu16_MASKmskw_XMMu8_XMMu8_IMM8_AVX512 +} + +{ +ICLASS: VDBPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x42 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 IMM0:r:b +IFORM: VDBPSADBW_XMMu16_MASKmskw_XMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VDBPSADBW (VDBPSADBW-256-1) +{ +ICLASS: VDBPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 IMM0:r:b +IFORM: VDBPSADBW_YMMu16_MASKmskw_YMMu8_YMMu8_IMM8_AVX512 +} + +{ +ICLASS: VDBPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x42 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 IMM0:r:b +IFORM: VDBPSADBW_YMMu16_MASKmskw_YMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VDBPSADBW (VDBPSADBW-512-1) +{ +ICLASS: VDBPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 IMM0:r:b +IFORM: VDBPSADBW_ZMMu16_MASKmskw_ZMMu8_ZMMu8_IMM8_AVX512 +} + +{ +ICLASS: VDBPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x42 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 IMM0:r:b +IFORM: VDBPSADBW_ZMMu16_MASKmskw_ZMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VDIVPD (VDIVPD-128-1) +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VDIVPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VDIVPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VDIVPD (VDIVPD-256-1) +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VDIVPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VDIVPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5E V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VDIVPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VDIVPS (VDIVPS-128-1) +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VDIVPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5E VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VDIVPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VDIVPS (VDIVPS-256-1) +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5E VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VDIVPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VDIVPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5E VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VDIVPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VEXPANDPD (VEXPANDPD-128-1) +{ +ICLASS: VEXPANDPD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x88 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f64 +IFORM: VEXPANDPD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VEXPANDPD (VEXPANDPD-128-2) +{ +ICLASS: VEXPANDPD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x88 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VEXPANDPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VEXPANDPD (VEXPANDPD-256-1) +{ +ICLASS: VEXPANDPD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x88 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f64 +IFORM: VEXPANDPD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VEXPANDPD (VEXPANDPD-256-2) +{ +ICLASS: VEXPANDPD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x88 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VEXPANDPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VEXPANDPS (VEXPANDPS-128-1) +{ +ICLASS: VEXPANDPS +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x88 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 +IFORM: VEXPANDPS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VEXPANDPS (VEXPANDPS-128-2) +{ +ICLASS: VEXPANDPS +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x88 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VEXPANDPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VEXPANDPS (VEXPANDPS-256-1) +{ +ICLASS: VEXPANDPS +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x88 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f32 +IFORM: VEXPANDPS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VEXPANDPS (VEXPANDPS-256-2) +{ +ICLASS: VEXPANDPS +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x88 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VEXPANDPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VEXTRACTF32X4 (VEXTRACTF32X4-256-1) +{ +ICLASS: VEXTRACTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f32 IMM0:r:b +IFORM: VEXTRACTF32X4_XMMf32_MASKmskw_YMMf32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF32X4 (VEXTRACTF32X4-256-2) +{ +ICLASS: VEXTRACTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x19 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: MEM0:w:dq:f32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f32 IMM0:r:b +IFORM: VEXTRACTF32X4_MEMf32_MASKmskw_YMMf32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF32X8 (VEXTRACTF32X8-512-1) +{ +ICLASS: VEXTRACTF32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1B V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_B3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VEXTRACTF32X8_YMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF32X8 (VEXTRACTF32X8-512-2) +{ +ICLASS: VEXTRACTF32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE8 +PATTERN: EVV 0x1B V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE8() +OPERANDS: MEM0:w:qq:f32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf32 IMM0:r:b +IFORM: VEXTRACTF32X8_MEMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF64X2 (VEXTRACTF64X2-256-1) +{ +ICLASS: VEXTRACTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f64 IMM0:r:b +IFORM: VEXTRACTF64X2_XMMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF64X2 (VEXTRACTF64X2-256-2) +{ +ICLASS: VEXTRACTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x19 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: MEM0:w:dq:f64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f64 IMM0:r:b +IFORM: VEXTRACTF64X2_MEMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF64X2 (VEXTRACTF64X2-512-1) +{ +ICLASS: VEXTRACTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x19 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zf64 IMM0:r:b +IFORM: VEXTRACTF64X2_XMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTF64X2 (VEXTRACTF64X2-512-2) +{ +ICLASS: VEXTRACTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x19 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: MEM0:w:dq:f64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zf64 IMM0:r:b +IFORM: VEXTRACTF64X2_MEMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI32X4 (VEXTRACTI32X4-256-1) +{ +ICLASS: VEXTRACTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 IMM0:r:b +IFORM: VEXTRACTI32X4_XMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI32X4 (VEXTRACTI32X4-256-2) +{ +ICLASS: VEXTRACTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x39 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 IMM0:r:b +IFORM: VEXTRACTI32X4_MEMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI32X8 (VEXTRACTI32X8-512-1) +{ +ICLASS: VEXTRACTI32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_B3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu32 IMM0:r:b +IFORM: VEXTRACTI32X8_YMMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI32X8 (VEXTRACTI32X8-512-2) +{ +ICLASS: VEXTRACTI32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE8 +PATTERN: EVV 0x3B V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE8() +OPERANDS: MEM0:w:qq:u32 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu32 IMM0:r:b +IFORM: VEXTRACTI32X8_MEMu32_MASKmskw_ZMMu32_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI64X2 (VEXTRACTI64X2-256-1) +{ +ICLASS: VEXTRACTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 IMM0:r:b +IFORM: VEXTRACTI64X2_XMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI64X2 (VEXTRACTI64X2-256-2) +{ +ICLASS: VEXTRACTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x39 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: MEM0:w:dq:u64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 IMM0:r:b +IFORM: VEXTRACTI64X2_MEMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI64X2 (VEXTRACTI64X2-512-1) +{ +ICLASS: VEXTRACTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_B3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu64 IMM0:r:b +IFORM: VEXTRACTI64X2_XMMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + + +# EMITTING VEXTRACTI64X2 (VEXTRACTI64X2-512-2) +{ +ICLASS: VEXTRACTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x39 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: MEM0:w:dq:u64 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu64 IMM0:r:b +IFORM: VEXTRACTI64X2_MEMu64_MASKmskw_ZMMu64_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMPD (VFIXUPIMMPD-128-1) +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VFIXUPIMMPD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VFIXUPIMMPD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMPD (VFIXUPIMMPD-256-1) +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VFIXUPIMMPD_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VFIXUPIMMPD_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMPS (VFIXUPIMMPS-128-1) +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VFIXUPIMMPS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VFIXUPIMMPS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFIXUPIMMPS (VFIXUPIMMPS-256-1) +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x54 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VFIXUPIMMPS_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFIXUPIMMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x54 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VFIXUPIMMPS_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFMADD132PD (VFMADD132PD-128-1) +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x98 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD132PD (VFMADD132PD-256-1) +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMADD132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x98 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD132PS (VFMADD132PS-128-1) +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x98 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD132PS (VFMADD132PS-256-1) +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x98 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMADD132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x98 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD213PD (VFMADD213PD-128-1) +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD213PD (VFMADD213PD-256-1) +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMADD213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD213PS (VFMADD213PS-128-1) +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD213PS (VFMADD213PS-256-1) +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMADD213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD231PD (VFMADD231PD-128-1) +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADD231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD231PD (VFMADD231PD-256-1) +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMADD231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADD231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADD231PS (VFMADD231PS-128-1) +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADD231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADD231PS (VFMADD231PS-256-1) +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB8 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMADD231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB8 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADD231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB132PD (VFMADDSUB132PD-128-1) +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADDSUB132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x96 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB132PD (VFMADDSUB132PD-256-1) +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMADDSUB132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x96 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB132PS (VFMADDSUB132PS-128-1) +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADDSUB132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x96 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB132PS (VFMADDSUB132PS-256-1) +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x96 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMADDSUB132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x96 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB213PD (VFMADDSUB213PD-128-1) +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADDSUB213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB213PD (VFMADDSUB213PD-256-1) +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMADDSUB213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB213PS (VFMADDSUB213PS-128-1) +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADDSUB213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB213PS (VFMADDSUB213PS-256-1) +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMADDSUB213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB231PD (VFMADDSUB231PD-128-1) +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMADDSUB231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB231PD (VFMADDSUB231PD-256-1) +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMADDSUB231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMADDSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMADDSUB231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMADDSUB231PS (VFMADDSUB231PS-128-1) +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMADDSUB231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMADDSUB231PS (VFMADDSUB231PS-256-1) +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB6 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMADDSUB231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMADDSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB6 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMADDSUB231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB132PD (VFMSUB132PD-128-1) +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB132PD (VFMSUB132PD-256-1) +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMSUB132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB132PS (VFMSUB132PS-128-1) +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB132PS (VFMSUB132PS-256-1) +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMSUB132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB213PD (VFMSUB213PD-128-1) +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB213PD (VFMSUB213PD-256-1) +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMSUB213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB213PS (VFMSUB213PS-128-1) +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB213PS (VFMSUB213PS-256-1) +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMSUB213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB231PD (VFMSUB231PD-128-1) +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUB231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB231PD (VFMSUB231PD-256-1) +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMSUB231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUB231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUB231PS (VFMSUB231PS-128-1) +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUB231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUB231PS (VFMSUB231PS-256-1) +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBA V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMSUB231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBA V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUB231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD132PD (VFMSUBADD132PD-128-1) +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUBADD132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x97 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD132PD (VFMSUBADD132PD-256-1) +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMSUBADD132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x97 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD132PS (VFMSUBADD132PS-128-1) +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUBADD132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x97 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD132PS (VFMSUBADD132PS-256-1) +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x97 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMSUBADD132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x97 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD213PD (VFMSUBADD213PD-128-1) +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUBADD213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD213PD (VFMSUBADD213PD-256-1) +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMSUBADD213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD213PS (VFMSUBADD213PS-128-1) +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUBADD213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD213PS (VFMSUBADD213PS-256-1) +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xA7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMSUBADD213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xA7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD231PD (VFMSUBADD231PD-128-1) +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFMSUBADD231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD231PD (VFMSUBADD231PD-256-1) +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFMSUBADD231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFMSUBADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFMSUBADD231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFMSUBADD231PS (VFMSUBADD231PS-128-1) +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFMSUBADD231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFMSUBADD231PS (VFMSUBADD231PS-256-1) +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xB7 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFMSUBADD231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFMSUBADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB7 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFMSUBADD231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD132PD (VFNMADD132PD-128-1) +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD132PD (VFNMADD132PD-256-1) +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFNMADD132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFNMADD132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD132PS (VFNMADD132PS-128-1) +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD132PS (VFNMADD132PS-256-1) +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFNMADD132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFNMADD132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD213PD (VFNMADD213PD-128-1) +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD213PD (VFNMADD213PD-256-1) +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFNMADD213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFNMADD213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD213PS (VFNMADD213PS-128-1) +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD213PS (VFNMADD213PS-256-1) +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFNMADD213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFNMADD213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD231PD (VFNMADD231PD-128-1) +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMADD231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD231PD (VFNMADD231PD-256-1) +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFNMADD231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFNMADD231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMADD231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMADD231PS (VFNMADD231PS-128-1) +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMADD231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMADD231PS (VFNMADD231PS-256-1) +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBC V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFNMADD231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFNMADD231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBC V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMADD231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB132PD (VFNMSUB132PD-128-1) +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB132PD (VFNMSUB132PD-256-1) +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFNMSUB132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB132PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB132PS (VFNMSUB132PS-128-1) +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB132PS (VFNMSUB132PS-256-1) +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x9E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFNMSUB132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB132PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x9E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB213PD (VFNMSUB213PD-128-1) +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB213PD (VFNMSUB213PD-256-1) +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFNMSUB213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB213PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB213PS (VFNMSUB213PS-128-1) +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB213PS (VFNMSUB213PS-256-1) +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xAE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFNMSUB213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB213PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xAE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB231PD (VFNMSUB231PD-128-1) +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VFNMSUB231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB231PD (VFNMSUB231PD-256-1) +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VFNMSUB231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VFNMSUB231PD +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VFNMSUB231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VFNMSUB231PS (VFNMSUB231PS-128-1) +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VFNMSUB231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VFNMSUB231PS (VFNMSUB231PS-256-1) +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0xBE V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VFNMSUB231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VFNMSUB231PS +CPL: 3 +CATEGORY: VFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xBE V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VFNMSUB231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VFPCLASSPD (VFPCLASSPD-128-1) +{ +ICLASS: VFPCLASSPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VFPCLASSPD_MASKmskw_MASKmskw_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VFPCLASSPD_MASKmskw_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFPCLASSPD (VFPCLASSPD-256-1) +{ +ICLASS: VFPCLASSPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VFPCLASSPD_MASKmskw_MASKmskw_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VFPCLASSPD_MASKmskw_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFPCLASSPD (VFPCLASSPD-512-1) +{ +ICLASS: VFPCLASSPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VFPCLASSPD_MASKmskw_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VFPCLASSPD_MASKmskw_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFPCLASSPS (VFPCLASSPS-128-1) +{ +ICLASS: VFPCLASSPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VFPCLASSPS_MASKmskw_MASKmskw_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VFPCLASSPS_MASKmskw_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFPCLASSPS (VFPCLASSPS-256-1) +{ +ICLASS: VFPCLASSPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VFPCLASSPS_MASKmskw_MASKmskw_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VFPCLASSPS_MASKmskw_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFPCLASSPS (VFPCLASSPS-512-1) +{ +ICLASS: VFPCLASSPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VFPCLASSPS_MASKmskw_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VFPCLASSPS_MASKmskw_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VFPCLASSSD (VFPCLASSSD-128-1) +{ +ICLASS: VFPCLASSSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x67 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VFPCLASSSD_MASKmskw_MASKmskw_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x67 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 NOEVSR ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:q:f64 IMM0:r:b +IFORM: VFPCLASSSD_MASKmskw_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VFPCLASSSS (VFPCLASSSS-128-1) +{ +ICLASS: VFPCLASSSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x67 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 NOEVSR ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VFPCLASSSS_MASKmskw_MASKmskw_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VFPCLASSSS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x67 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 NOEVSR ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw MEM0:r:d:f32 IMM0:r:b +IFORM: VFPCLASSSS_MASKmskw_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VGATHERDPD (VGATHERDPD-128-1) +{ +ICLASS: VGATHERDPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x92 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASKNOT0():rw:mskw MEM0:r:dq:f64 +IFORM: VGATHERDPD_XMMf64_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VGATHERDPD (VGATHERDPD-256-1) +{ +ICLASS: VGATHERDPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x92 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASKNOT0():rw:mskw MEM0:r:qq:f64 +IFORM: VGATHERDPD_YMMf64_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VGATHERDPS (VGATHERDPS-128-1) +{ +ICLASS: VGATHERDPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x92 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASKNOT0():rw:mskw MEM0:r:dq:f32 +IFORM: VGATHERDPS_XMMf32_MASKmskw_MEMf32_AVX512_VL128 +} + + +# EMITTING VGATHERDPS (VGATHERDPS-256-1) +{ +ICLASS: VGATHERDPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x92 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASKNOT0():rw:mskw MEM0:r:qq:f32 +IFORM: VGATHERDPS_YMMf32_MASKmskw_MEMf32_AVX512_VL256 +} + + +# EMITTING VGATHERQPD (VGATHERQPD-128-1) +{ +ICLASS: VGATHERQPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x93 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASKNOT0():rw:mskw MEM0:r:dq:f64 +IFORM: VGATHERQPD_XMMf64_MASKmskw_MEMf64_AVX512_VL128 +} + + +# EMITTING VGATHERQPD (VGATHERQPD-256-1) +{ +ICLASS: VGATHERQPD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x93 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASKNOT0():rw:mskw MEM0:r:qq:f64 +IFORM: VGATHERQPD_YMMf64_MASKmskw_MEMf64_AVX512_VL256 +} + + +# EMITTING VGATHERQPS (VGATHERQPS-128-1) +{ +ICLASS: VGATHERQPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x93 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASKNOT0():rw:mskw MEM0:r:q:f32 +IFORM: VGATHERQPS_XMMf32_MASKmskw_MEMf32_AVX512_VL128 +} + + +# EMITTING VGATHERQPS (VGATHERQPS-256-1) +{ +ICLASS: VGATHERQPS +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x93 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASKNOT0():rw:mskw MEM0:r:dq:f32 +IFORM: VGATHERQPS_XMMf32_MASKmskw_MEMf32_AVX512_VL256 +} + + +# EMITTING VGETEXPPD (VGETEXPPD-128-1) +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VGETEXPPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x42 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VGETEXPPD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VGETEXPPD (VGETEXPPD-256-1) +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VGETEXPPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VGETEXPPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x42 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VGETEXPPD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VGETEXPPS (VGETEXPPS-128-1) +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VGETEXPPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x42 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VGETEXPPS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VGETEXPPS (VGETEXPPS-256-1) +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x42 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VGETEXPPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VGETEXPPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x42 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VGETEXPPS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VGETMANTPD (VGETMANTPD-128-1) +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VGETMANTPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x26 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VGETMANTPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VGETMANTPD (VGETMANTPD-256-1) +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VGETMANTPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x26 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VGETMANTPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VGETMANTPS (VGETMANTPS-128-1) +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VGETMANTPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x26 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VGETMANTPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VGETMANTPS (VGETMANTPS-256-1) +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VGETMANTPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VGETMANTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x26 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VGETMANTPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VINSERTF32X4 (VINSERTF32X4-256-1) +{ +ICLASS: VINSERTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VINSERTF32X4_YMMf32_MASKmskw_YMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x18 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:dq:f32 IMM0:r:b +IFORM: VINSERTF32X4_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VINSERTF32X8 (VINSERTF32X8-512-1) +{ +ICLASS: VINSERTF32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1A V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VINSERTF32X8_ZMMf32_MASKmskw_ZMMf32_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTF32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE8 +PATTERN: EVV 0x1A V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:qq:f32 IMM0:r:b +IFORM: VINSERTF32X8_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VINSERTF64X2 (VINSERTF64X2-256-1) +{ +ICLASS: VINSERTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VINSERTF64X2_YMMf64_MASKmskw_YMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VINSERTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x18 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:dq:f64 IMM0:r:b +IFORM: VINSERTF64X2_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VINSERTF64X2 (VINSERTF64X2-512-1) +{ +ICLASS: VINSERTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x18 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VINSERTF64X2_ZMMf64_MASKmskw_ZMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VINSERTF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x18 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:dq:f64 IMM0:r:b +IFORM: VINSERTF64X2_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VINSERTI32X4 (VINSERTI32X4-256-1) +{ +ICLASS: VINSERTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VINSERTI32X4_YMMu32_MASKmskw_YMMu32_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE4 +PATTERN: EVV 0x38 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE4() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:dq:u32 IMM0:r:b +IFORM: VINSERTI32X4_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VINSERTI32X8 (VINSERTI32X8-512-1) +{ +ICLASS: VINSERTI32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3A V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VINSERTI32X8_ZMMu32_MASKmskw_ZMMu32_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VINSERTI32X8 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE8 +PATTERN: EVV 0x3A V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_TUPLE8() +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:qq:u32 IMM0:r:b +IFORM: VINSERTI32X8_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VINSERTI64X2 (VINSERTI64X2-256-1) +{ +ICLASS: VINSERTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VINSERTI64X2_YMMu64_MASKmskw_YMMu64_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VINSERTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x38 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:dq:u64 IMM0:r:b +IFORM: VINSERTI64X2_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VINSERTI64X2 (VINSERTI64X2-512-1) +{ +ICLASS: VINSERTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VINSERTI64X2_ZMMu64_MASKmskw_ZMMu64_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VINSERTI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_TUPLE2 +PATTERN: EVV 0x38 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_TUPLE2() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:dq:u64 IMM0:r:b +IFORM: VINSERTI64X2_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VMAXPD (VMAXPD-128-1) +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMAXPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMAXPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMAXPD (VMAXPD-256-1) +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VMAXPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VMAXPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMAXPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VMAXPS (VMAXPS-128-1) +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMAXPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5F VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMAXPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMAXPS (VMAXPS-256-1) +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5F VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VMAXPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VMAXPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5F VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMAXPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VMINPD (VMINPD-128-1) +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMINPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5D V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMINPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMINPD (VMINPD-256-1) +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VMINPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VMINPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5D V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMINPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VMINPS (VMINPS-128-1) +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMINPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5D VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMINPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMINPS (VMINPS-256-1) +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5D VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VMINPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VMINPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5D VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMINPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-128-1) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VMOVAPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x28 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f64 +IFORM: VMOVAPD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-128-2) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f64 +IFORM: VMOVAPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-128-3) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x29 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:f64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f64 +IFORM: VMOVAPD_MEMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-256-1) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VMOVAPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x28 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f64 +IFORM: VMOVAPD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-256-2) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f64 +IFORM: VMOVAPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VMOVAPD (VMOVAPD-256-3) +{ +ICLASS: VMOVAPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x29 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:f64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f64 +IFORM: VMOVAPD_MEMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-128-1) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VMOVAPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x28 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 +IFORM: VMOVAPS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-128-2) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f32 +IFORM: VMOVAPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-128-3) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x29 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:f32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VMOVAPS_MEMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-256-1) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VMOVAPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x28 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f32 +IFORM: VMOVAPS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-256-2) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f32 +IFORM: VMOVAPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VMOVAPS (VMOVAPS-256-3) +{ +ICLASS: VMOVAPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x29 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:f32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f32 +IFORM: VMOVAPS_MEMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VMOVDDUP (VMOVDDUP-128-1) +{ +ICLASS: VMOVDDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VMOVDDUP_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VMOVDDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MOVDDUP +PATTERN: EVV 0x12 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_MOVDDUP() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:f64 +IFORM: VMOVDDUP_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVDDUP (VMOVDDUP-256-1) +{ +ICLASS: VMOVDDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VMOVDDUP_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VMOVDDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MOVDDUP +PATTERN: EVV 0x12 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_MOVDDUP() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f64 +IFORM: VMOVDDUP_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-128-1) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VMOVDQA32_XMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u32 +IFORM: VMOVDQA32_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-128-2) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VMOVDQA32_XMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-128-3) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VMOVDQA32_MEMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-256-1) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VMOVDQA32_YMMu32_MASKmskw_YMMu32_AVX512 +} + +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u32 +IFORM: VMOVDQA32_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-256-2) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VMOVDQA32_YMMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VMOVDQA32 (VMOVDQA32-256-3) +{ +ICLASS: VMOVDQA32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VMOVDQA32_MEMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-128-1) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VMOVDQA64_XMMu64_MASKmskw_XMMu64_AVX512 +} + +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u64 +IFORM: VMOVDQA64_XMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-128-2) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VMOVDQA64_XMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-128-3) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VMOVDQA64_MEMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-256-1) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VMOVDQA64_YMMu64_MASKmskw_YMMu64_AVX512 +} + +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u64 +IFORM: VMOVDQA64_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-256-2) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VMOVDQA64_YMMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VMOVDQA64 (VMOVDQA64-256-3) +{ +ICLASS: VMOVDQA64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1 +REAL_OPCODE: Y +ATTRIBUTES: REQUIRES_ALIGNMENT MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VMOVDQA64_MEMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-128-1) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 +IFORM: VMOVDQU16_XMMu16_MASKmskw_XMMu16_AVX512 +} + +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u16 +IFORM: VMOVDQU16_XMMu16_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-128-2) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u16 +IFORM: VMOVDQU16_XMMu16_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-128-3) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u16 +IFORM: VMOVDQU16_MEMu16_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-256-1) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u16 +IFORM: VMOVDQU16_YMMu16_MASKmskw_YMMu16_AVX512 +} + +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u16 +IFORM: VMOVDQU16_YMMu16_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-256-2) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u16 +IFORM: VMOVDQU16_YMMu16_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-256-3) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u16 +IFORM: VMOVDQU16_MEMu16_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-512-1) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu16 +IFORM: VMOVDQU16_ZMMu16_MASKmskw_ZMMu16_AVX512 +} + +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u16 +IFORM: VMOVDQU16_ZMMu16_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-512-2) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu16 +IFORM: VMOVDQU16_ZMMu16_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VMOVDQU16 (VMOVDQU16-512-3) +{ +ICLASS: VMOVDQU16 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u16 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu16 +IFORM: VMOVDQU16_MEMu16_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-128-1) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VMOVDQU32_XMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u32 +IFORM: VMOVDQU32_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-128-2) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VMOVDQU32_XMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-128-3) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VMOVDQU32_MEMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-256-1) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VMOVDQU32_YMMu32_MASKmskw_YMMu32_AVX512 +} + +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u32 +IFORM: VMOVDQU32_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-256-2) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VMOVDQU32_YMMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VMOVDQU32 (VMOVDQU32-256-3) +{ +ICLASS: VMOVDQU32 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VMOVDQU32_MEMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-128-1) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VMOVDQU64_XMMu64_MASKmskw_XMMu64_AVX512 +} + +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u64 +IFORM: VMOVDQU64_XMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-128-2) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VMOVDQU64_XMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-128-3) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VMOVDQU64_MEMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-256-1) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VMOVDQU64_YMMu64_MASKmskw_YMMu64_AVX512 +} + +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u64 +IFORM: VMOVDQU64_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-256-2) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VMOVDQU64_YMMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VMOVDQU64 (VMOVDQU64-256-3) +{ +ICLASS: VMOVDQU64 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VMOVDQU64_MEMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-128-1) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u8 +IFORM: VMOVDQU8_XMMu8_MASKmskw_XMMu8_AVX512 +} + +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u8 +IFORM: VMOVDQU8_XMMu8_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-128-2) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u8 +IFORM: VMOVDQU8_XMMu8_MASKmskw_XMMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-128-3) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u8 +IFORM: VMOVDQU8_MEMu8_MASKmskw_XMMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-256-1) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u8 +IFORM: VMOVDQU8_YMMu8_MASKmskw_YMMu8_AVX512 +} + +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u8 +IFORM: VMOVDQU8_YMMu8_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-256-2) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u8 +IFORM: VMOVDQU8_YMMu8_MASKmskw_YMMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-256-3) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u8 +IFORM: VMOVDQU8_MEMu8_MASKmskw_YMMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-512-1) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu8 +IFORM: VMOVDQU8_ZMMu8_MASKmskw_ZMMu8_AVX512 +} + +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x6F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u8 +IFORM: VMOVDQU8_ZMMu8_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-512-2) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_B3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu8 +IFORM: VMOVDQU8_ZMMu8_MASKmskw_ZMMu8_AVX512 +} + + +# EMITTING VMOVDQU8 (VMOVDQU8-512-3) +{ +ICLASS: VMOVDQU8 +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7F VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:zd:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu8 +IFORM: VMOVDQU8_MEMu8_MASKmskw_ZMMu8_AVX512 +} + + +# EMITTING VMOVNTDQ (VMOVNTDQ-128-1) +{ +ICLASS: VMOVNTDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0xE7 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:u32 REG0=XMM_R3():r:dq:u32 +IFORM: VMOVNTDQ_MEMu32_XMMu32_AVX512 +} + + +# EMITTING VMOVNTDQ (VMOVNTDQ-256-1) +{ +ICLASS: VMOVNTDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0xE7 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:u32 REG0=YMM_R3():r:qq:u32 +IFORM: VMOVNTDQ_MEMu32_YMMu32_AVX512 +} + + +# EMITTING VMOVNTDQA (VMOVNTDQA-128-1) +{ +ICLASS: VMOVNTDQA +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u32 MEM0:r:dq:u32 +IFORM: VMOVNTDQA_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VMOVNTDQA (VMOVNTDQA-256-1) +{ +ICLASS: VMOVNTDQA +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u32 MEM0:r:qq:u32 +IFORM: VMOVNTDQA_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VMOVNTPD (VMOVNTPD-128-1) +{ +ICLASS: VMOVNTPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:f64 REG0=XMM_R3():r:dq:f64 +IFORM: VMOVNTPD_MEMf64_XMMf64_AVX512 +} + + +# EMITTING VMOVNTPD (VMOVNTPD-256-1) +{ +ICLASS: VMOVNTPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 MASK=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:f64 REG0=YMM_R3():r:qq:f64 +IFORM: VMOVNTPD_MEMf64_YMMf64_AVX512 +} + + +# EMITTING VMOVNTPS (VMOVNTPS-128-1) +{ +ICLASS: VMOVNTPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:f32 REG0=XMM_R3():r:dq:f32 +IFORM: VMOVNTPS_MEMf32_XMMf32_AVX512 +} + + +# EMITTING VMOVNTPS (VMOVNTPS-256-1) +{ +ICLASS: VMOVNTPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E1NF +REAL_OPCODE: Y +ATTRIBUTES: NOTSX REQUIRES_ALIGNMENT DISP8_FULLMEM +PATTERN: EVV 0x2B VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 MASK=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:f32 REG0=YMM_R3():r:qq:f32 +IFORM: VMOVNTPS_MEMf32_YMMf32_AVX512 +} + + +# EMITTING VMOVSHDUP (VMOVSHDUP-128-1) +{ +ICLASS: VMOVSHDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VMOVSHDUP_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VMOVSHDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x16 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 +IFORM: VMOVSHDUP_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVSHDUP (VMOVSHDUP-256-1) +{ +ICLASS: VMOVSHDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VMOVSHDUP_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VMOVSHDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x16 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f32 +IFORM: VMOVSHDUP_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVSLDUP (VMOVSLDUP-128-1) +{ +ICLASS: VMOVSLDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VMOVSLDUP_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VMOVSLDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x12 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 +IFORM: VMOVSLDUP_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVSLDUP (VMOVSLDUP-256-1) +{ +ICLASS: VMOVSLDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VMOVSLDUP_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VMOVSLDUP +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x12 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f32 +IFORM: VMOVSLDUP_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-128-1) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VMOVUPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f64 +IFORM: VMOVUPD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-128-2) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f64 +IFORM: VMOVUPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-128-3) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:f64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f64 +IFORM: VMOVUPD_MEMf64_MASKmskw_XMMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-256-1) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VMOVUPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f64 +IFORM: VMOVUPD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-256-2) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f64 +IFORM: VMOVUPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VMOVUPD (VMOVUPD-256-3) +{ +ICLASS: VMOVUPD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:f64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f64 +IFORM: VMOVUPD_MEMf64_MASKmskw_YMMf64_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-128-1) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VMOVUPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:f32 +IFORM: VMOVUPS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-128-2) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:f32 +IFORM: VMOVUPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-128-3) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:dq:f32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VMOVUPS_MEMf32_MASKmskw_XMMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-256-1) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VMOVUPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:f32 +IFORM: VMOVUPS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-256-2) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:f32 +IFORM: VMOVUPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VMOVUPS (VMOVUPS-256-3) +{ +ICLASS: VMOVUPS +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_FULLMEM() +OPERANDS: MEM0:w:qq:f32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:f32 +IFORM: VMOVUPS_MEMf32_MASKmskw_YMMf32_AVX512 +} + + +# EMITTING VMULPD (VMULPD-128-1) +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VMULPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x59 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMULPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VMULPD (VMULPD-256-1) +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VMULPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VMULPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x59 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VMULPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VMULPS (VMULPS-128-1) +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VMULPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x59 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMULPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VMULPS (VMULPS-256-1) +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x59 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VMULPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VMULPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x59 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VMULPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VORPD (VORPD-128-1) +{ +ICLASS: VORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VORPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VORPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VORPD (VORPD-256-1) +{ +ICLASS: VORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VORPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VORPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VORPD (VORPD-512-1) +{ +ICLASS: VORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VORPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VORPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VORPS (VORPS-128-1) +{ +ICLASS: VORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x56 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VORPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VORPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VORPS (VORPS-256-1) +{ +ICLASS: VORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x56 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VORPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VORPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VORPS (VORPS-512-1) +{ +ICLASS: VORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x56 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VORPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VORPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +# EMITTING VPABSB (VPABSB-128-1) +{ +ICLASS: VPABSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPABSB_XMMi8_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPABSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x1C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i8 +IFORM: VPABSB_XMMi8_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPABSB (VPABSB-256-1) +{ +ICLASS: VPABSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i8 +IFORM: VPABSB_YMMi8_MASKmskw_YMMi8_AVX512 +} + +{ +ICLASS: VPABSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x1C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i8 +IFORM: VPABSB_YMMi8_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPABSB (VPABSB-512-1) +{ +ICLASS: VPABSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zi8 +IFORM: VPABSB_ZMMi8_MASKmskw_ZMMi8_AVX512 +} + +{ +ICLASS: VPABSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x1C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:i8 +IFORM: VPABSB_ZMMi8_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPABSD (VPABSD-128-1) +{ +ICLASS: VPABSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VPABSD_XMMi32_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VPABSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPABSD_XMMi32_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPABSD (VPABSD-256-1) +{ +ICLASS: VPABSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i32 +IFORM: VPABSD_YMMi32_MASKmskw_YMMi32_AVX512 +} + +{ +ICLASS: VPABSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPABSD_YMMi32_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPABSQ (VPABSQ-128-1) +{ +ICLASS: VPABSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i64 +IFORM: VPABSQ_XMMi64_MASKmskw_XMMi64_AVX512 +} + +{ +ICLASS: VPABSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPABSQ_XMMi64_MASKmskw_MEMi64_AVX512 +} + + +# EMITTING VPABSQ (VPABSQ-256-1) +{ +ICLASS: VPABSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i64 +IFORM: VPABSQ_YMMi64_MASKmskw_YMMi64_AVX512 +} + +{ +ICLASS: VPABSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPABSQ_YMMi64_MASKmskw_MEMi64_AVX512 +} + + +# EMITTING VPABSW (VPABSW-128-1) +{ +ICLASS: VPABSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPABSW_XMMi16_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPABSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x1D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i16 +IFORM: VPABSW_XMMi16_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPABSW (VPABSW-256-1) +{ +ICLASS: VPABSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i16 +IFORM: VPABSW_YMMi16_MASKmskw_YMMi16_AVX512 +} + +{ +ICLASS: VPABSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x1D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i16 +IFORM: VPABSW_YMMi16_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPABSW (VPABSW-512-1) +{ +ICLASS: VPABSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zi16 +IFORM: VPABSW_ZMMi16_MASKmskw_ZMMi16_AVX512 +} + +{ +ICLASS: VPABSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x1D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:i16 +IFORM: VPABSW_ZMMi16_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPACKSSDW (VPACKSSDW-128-1) +{ +ICLASS: VPACKSSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 REG3=XMM_B3():r:dq:i32 +IFORM: VPACKSSDW_XMMi16_MASKmskw_XMMi32_XMMi32_AVX512 +} + +{ +ICLASS: VPACKSSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPACKSSDW_XMMi16_MASKmskw_XMMi32_MEMi32_AVX512 +} + + +# EMITTING VPACKSSDW (VPACKSSDW-256-1) +{ +ICLASS: VPACKSSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 REG3=YMM_B3():r:qq:i32 +IFORM: VPACKSSDW_YMMi16_MASKmskw_YMMi32_YMMi32_AVX512 +} + +{ +ICLASS: VPACKSSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPACKSSDW_YMMi16_MASKmskw_YMMi32_MEMi32_AVX512 +} + + +# EMITTING VPACKSSDW (VPACKSSDW-512-1) +{ +ICLASS: VPACKSSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6B V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 REG3=ZMM_B3():r:zi32 +IFORM: VPACKSSDW_ZMMi16_MASKmskw_ZMMi32_ZMMi32_AVX512 +} + +{ +ICLASS: VPACKSSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6B V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPACKSSDW_ZMMi16_MASKmskw_ZMMi32_MEMi32_AVX512 +} + + +# EMITTING VPACKSSWB (VPACKSSWB-128-1) +{ +ICLASS: VPACKSSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x63 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPACKSSWB_XMMi8_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPACKSSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x63 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPACKSSWB_XMMi8_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPACKSSWB (VPACKSSWB-256-1) +{ +ICLASS: VPACKSSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x63 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPACKSSWB_YMMi8_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPACKSSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x63 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPACKSSWB_YMMi8_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPACKSSWB (VPACKSSWB-512-1) +{ +ICLASS: VPACKSSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x63 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPACKSSWB_ZMMi8_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPACKSSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x63 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPACKSSWB_ZMMi8_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPACKUSDW (VPACKUSDW-128-1) +{ +ICLASS: VPACKUSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x2B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPACKUSDW_XMMu16_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPACKUSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPACKUSDW_XMMu16_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPACKUSDW (VPACKUSDW-256-1) +{ +ICLASS: VPACKUSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x2B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPACKUSDW_YMMu16_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPACKUSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPACKUSDW_YMMu16_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPACKUSDW (VPACKUSDW-512-1) +{ +ICLASS: VPACKUSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x2B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 REG3=ZMM_B3():r:zu32 +IFORM: VPACKUSDW_ZMMu16_MASKmskw_ZMMu32_ZMMu32_AVX512 +} + +{ +ICLASS: VPACKUSDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPACKUSDW_ZMMu16_MASKmskw_ZMMu32_MEMu32_AVX512 +} + + +# EMITTING VPACKUSWB (VPACKUSWB-128-1) +{ +ICLASS: VPACKUSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x67 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPACKUSWB_XMMu8_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPACKUSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x67 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPACKUSWB_XMMu8_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPACKUSWB (VPACKUSWB-256-1) +{ +ICLASS: VPACKUSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x67 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPACKUSWB_YMMu8_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPACKUSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x67 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPACKUSWB_YMMu8_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPACKUSWB (VPACKUSWB-512-1) +{ +ICLASS: VPACKUSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x67 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPACKUSWB_ZMMu8_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPACKUSWB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x67 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPACKUSWB_ZMMu8_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPADDB (VPADDB-128-1) +{ +ICLASS: VPADDB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPADDB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPADDB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xFC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPADDB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPADDB (VPADDB-256-1) +{ +ICLASS: VPADDB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPADDB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPADDB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xFC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPADDB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPADDB (VPADDB-512-1) +{ +ICLASS: VPADDB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPADDB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPADDB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xFC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPADDB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPADDD (VPADDD-128-1) +{ +ICLASS: VPADDD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPADDD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPADDD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPADDD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPADDD (VPADDD-256-1) +{ +ICLASS: VPADDD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPADDD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPADDD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPADDD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPADDQ (VPADDQ-128-1) +{ +ICLASS: VPADDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPADDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPADDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xD4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPADDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPADDQ (VPADDQ-256-1) +{ +ICLASS: VPADDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPADDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPADDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xD4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPADDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPADDSB (VPADDSB-128-1) +{ +ICLASS: VPADDSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 REG3=XMM_B3():r:dq:i8 +IFORM: VPADDSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512 +} + +{ +ICLASS: VPADDSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 MEM0:r:dq:i8 +IFORM: VPADDSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512 +} + + +# EMITTING VPADDSB (VPADDSB-256-1) +{ +ICLASS: VPADDSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 REG3=YMM_B3():r:qq:i8 +IFORM: VPADDSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512 +} + +{ +ICLASS: VPADDSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 MEM0:r:qq:i8 +IFORM: VPADDSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512 +} + + +# EMITTING VPADDSB (VPADDSB-512-1) +{ +ICLASS: VPADDSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 REG3=ZMM_B3():r:zi8 +IFORM: VPADDSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512 +} + +{ +ICLASS: VPADDSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 MEM0:r:zd:i8 +IFORM: VPADDSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512 +} + + +# EMITTING VPADDSW (VPADDSW-128-1) +{ +ICLASS: VPADDSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xED V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPADDSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPADDSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xED V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPADDSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPADDSW (VPADDSW-256-1) +{ +ICLASS: VPADDSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xED V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPADDSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPADDSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xED V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPADDSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPADDSW (VPADDSW-512-1) +{ +ICLASS: VPADDSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xED V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPADDSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPADDSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xED V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPADDSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPADDUSB (VPADDUSB-128-1) +{ +ICLASS: VPADDUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPADDUSB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPADDUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPADDUSB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPADDUSB (VPADDUSB-256-1) +{ +ICLASS: VPADDUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPADDUSB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPADDUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPADDUSB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPADDUSB (VPADDUSB-512-1) +{ +ICLASS: VPADDUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDC V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPADDUSB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPADDUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDC V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPADDUSB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPADDUSW (VPADDUSW-128-1) +{ +ICLASS: VPADDUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDD V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPADDUSW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPADDUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDD V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPADDUSW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPADDUSW (VPADDUSW-256-1) +{ +ICLASS: VPADDUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDD V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPADDUSW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPADDUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDD V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPADDUSW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPADDUSW (VPADDUSW-512-1) +{ +ICLASS: VPADDUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDD V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPADDUSW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPADDUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDD V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPADDUSW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPADDW (VPADDW-128-1) +{ +ICLASS: VPADDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFD V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPADDW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPADDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xFD V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPADDW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPADDW (VPADDW-256-1) +{ +ICLASS: VPADDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFD V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPADDW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPADDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xFD V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPADDW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPADDW (VPADDW-512-1) +{ +ICLASS: VPADDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFD V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPADDW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPADDW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xFD V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPADDW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPALIGNR (VPALIGNR-128-1) +{ +ICLASS: VPALIGNR +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 IMM0:r:b +IFORM: VPALIGNR_XMMu8_MASKmskw_XMMu8_XMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPALIGNR +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x0F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 UIMM8() ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 IMM0:r:b +IFORM: VPALIGNR_XMMu8_MASKmskw_XMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPALIGNR (VPALIGNR-256-1) +{ +ICLASS: VPALIGNR +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 IMM0:r:b +IFORM: VPALIGNR_YMMu8_MASKmskw_YMMu8_YMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPALIGNR +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x0F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 UIMM8() ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 IMM0:r:b +IFORM: VPALIGNR_YMMu8_MASKmskw_YMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPALIGNR (VPALIGNR-512-1) +{ +ICLASS: VPALIGNR +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 IMM0:r:b +IFORM: VPALIGNR_ZMMu8_MASKmskw_ZMMu8_ZMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPALIGNR +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x0F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 UIMM8() ESIZE_64_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 IMM0:r:b +IFORM: VPALIGNR_ZMMu8_MASKmskw_ZMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPANDD (VPANDD-128-1) +{ +ICLASS: VPANDD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPANDD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPANDD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPANDD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPANDD (VPANDD-256-1) +{ +ICLASS: VPANDD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPANDD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPANDD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPANDD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPANDND (VPANDND-128-1) +{ +ICLASS: VPANDND +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPANDND_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPANDND +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPANDND_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPANDND (VPANDND-256-1) +{ +ICLASS: VPANDND +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPANDND_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPANDND +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPANDND_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPANDNQ (VPANDNQ-128-1) +{ +ICLASS: VPANDNQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPANDNQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPANDNQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPANDNQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPANDNQ (VPANDNQ-256-1) +{ +ICLASS: VPANDNQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPANDNQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPANDNQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPANDNQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPANDQ (VPANDQ-128-1) +{ +ICLASS: VPANDQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPANDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPANDQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPANDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPANDQ (VPANDQ-256-1) +{ +ICLASS: VPANDQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPANDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPANDQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xDB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPANDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPAVGB (VPAVGB-128-1) +{ +ICLASS: VPAVGB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE0 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPAVGB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPAVGB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE0 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPAVGB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPAVGB (VPAVGB-256-1) +{ +ICLASS: VPAVGB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE0 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPAVGB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPAVGB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE0 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPAVGB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPAVGB (VPAVGB-512-1) +{ +ICLASS: VPAVGB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE0 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPAVGB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPAVGB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE0 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPAVGB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPAVGW (VPAVGW-128-1) +{ +ICLASS: VPAVGW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPAVGW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPAVGW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPAVGW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPAVGW (VPAVGW-256-1) +{ +ICLASS: VPAVGW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPAVGW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPAVGW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPAVGW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPAVGW (VPAVGW-512-1) +{ +ICLASS: VPAVGW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPAVGW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPAVGW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPAVGW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPBLENDMB (VPBLENDMB-128-1) +{ +ICLASS: VPBLENDMB +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x66 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPBLENDMB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPBLENDMB +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULLMEM +PATTERN: EVV 0x66 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPBLENDMB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPBLENDMB (VPBLENDMB-256-1) +{ +ICLASS: VPBLENDMB +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x66 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPBLENDMB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPBLENDMB +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULLMEM +PATTERN: EVV 0x66 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPBLENDMB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPBLENDMB (VPBLENDMB-512-1) +{ +ICLASS: VPBLENDMB +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x66 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPBLENDMB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPBLENDMB +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULLMEM +PATTERN: EVV 0x66 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPBLENDMB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPBLENDMD (VPBLENDMD-128-1) +{ +ICLASS: VPBLENDMD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x64 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPBLENDMD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPBLENDMD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x64 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPBLENDMD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPBLENDMD (VPBLENDMD-256-1) +{ +ICLASS: VPBLENDMD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x64 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPBLENDMD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPBLENDMD +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x64 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPBLENDMD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPBLENDMQ (VPBLENDMQ-128-1) +{ +ICLASS: VPBLENDMQ +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x64 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPBLENDMQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPBLENDMQ +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x64 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPBLENDMQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPBLENDMQ (VPBLENDMQ-256-1) +{ +ICLASS: VPBLENDMQ +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x64 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPBLENDMQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPBLENDMQ +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x64 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPBLENDMQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPBLENDMW (VPBLENDMW-128-1) +{ +ICLASS: VPBLENDMW +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x66 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPBLENDMW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPBLENDMW +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULLMEM +PATTERN: EVV 0x66 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPBLENDMW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPBLENDMW (VPBLENDMW-256-1) +{ +ICLASS: VPBLENDMW +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x66 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPBLENDMW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPBLENDMW +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULLMEM +PATTERN: EVV 0x66 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPBLENDMW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPBLENDMW (VPBLENDMW-512-1) +{ +ICLASS: VPBLENDMW +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX MASK_AS_CONTROL +PATTERN: EVV 0x66 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPBLENDMW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPBLENDMW +CPL: 3 +CATEGORY: BLEND +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX MASK_AS_CONTROL DISP8_FULLMEM +PATTERN: EVV 0x66 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPBLENDMW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPBROADCASTB (VPBROADCASTB-128-1) +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u8 EMX_BROADCAST_1TO16_8 +IFORM: VPBROADCASTB_XMMu8_MASKmskw_XMMu8_AVX512 +} + +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1_BYTE +PATTERN: EVV 0x78 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_8_BITS() NELEM_TUPLE1_BYTE() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:b:u8 EMX_BROADCAST_1TO16_8 +IFORM: VPBROADCASTB_XMMu8_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING VPBROADCASTB (VPBROADCASTB-128-2) +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u8 EMX_BROADCAST_1TO16_8 +IFORM: VPBROADCASTB_XMMu8_MASKmskw_GPR32u8_AVX512 +} + + +# EMITTING VPBROADCASTB (VPBROADCASTB-256-1) +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u8 EMX_BROADCAST_1TO32_8 +IFORM: VPBROADCASTB_YMMu8_MASKmskw_XMMu8_AVX512 +} + +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1_BYTE +PATTERN: EVV 0x78 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_8_BITS() NELEM_TUPLE1_BYTE() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:b:u8 EMX_BROADCAST_1TO32_8 +IFORM: VPBROADCASTB_YMMu8_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING VPBROADCASTB (VPBROADCASTB-256-2) +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u8 EMX_BROADCAST_1TO32_8 +IFORM: VPBROADCASTB_YMMu8_MASKmskw_GPR32u8_AVX512 +} + + +# EMITTING VPBROADCASTB (VPBROADCASTB-512-1) +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x78 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u8 EMX_BROADCAST_1TO64_8 +IFORM: VPBROADCASTB_ZMMu8_MASKmskw_XMMu8_AVX512 +} + +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1_BYTE +PATTERN: EVV 0x78 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_8_BITS() NELEM_TUPLE1_BYTE() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:b:u8 EMX_BROADCAST_1TO64_8 +IFORM: VPBROADCASTB_ZMMu8_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING VPBROADCASTB (VPBROADCASTB-512-2) +{ +ICLASS: VPBROADCASTB +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u8 EMX_BROADCAST_1TO64_8 +IFORM: VPBROADCASTB_ZMMu8_MASKmskw_GPR32u8_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-128-1) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x58 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:u32 EMX_BROADCAST_1TO4_32 +IFORM: VPBROADCASTD_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-128-2) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 EMX_BROADCAST_1TO4_32 +IFORM: VPBROADCASTD_XMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-128-3) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u32 EMX_BROADCAST_1TO4_32 +IFORM: VPBROADCASTD_XMMu32_MASKmskw_GPR32u32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-256-1) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x58 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_TUPLE1() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:u32 EMX_BROADCAST_1TO8_32 +IFORM: VPBROADCASTD_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-256-2) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x58 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 EMX_BROADCAST_1TO8_32 +IFORM: VPBROADCASTD_YMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPBROADCASTD (VPBROADCASTD-256-3) +{ +ICLASS: VPBROADCASTD +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u32 EMX_BROADCAST_1TO8_32 +IFORM: VPBROADCASTD_YMMu32_MASKmskw_GPR32u32_AVX512 +} + + +# EMITTING VPBROADCASTMB2Q (VPBROADCASTMB2Q-128-1) +{ +ICLASS: VPBROADCASTMB2Q +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +PATTERN: EVV 0x2A VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK_B():r:mskw:u64 EMX_BROADCAST_1TO2_8 +IFORM: VPBROADCASTMB2Q_XMMu64_MASKu64_AVX512 +} + + +# EMITTING VPBROADCASTMB2Q (VPBROADCASTMB2Q-256-1) +{ +ICLASS: VPBROADCASTMB2Q +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +PATTERN: EVV 0x2A VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK_B():r:mskw:u64 EMX_BROADCAST_1TO4_8 +IFORM: VPBROADCASTMB2Q_YMMu64_MASKu64_AVX512 +} + + +# EMITTING VPBROADCASTMW2D (VPBROADCASTMW2D-128-1) +{ +ICLASS: VPBROADCASTMW2D +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +PATTERN: EVV 0x3A VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK_B():r:mskw:u32 EMX_BROADCAST_1TO4_16 +IFORM: VPBROADCASTMW2D_XMMu32_MASKu32_AVX512 +} + + +# EMITTING VPBROADCASTMW2D (VPBROADCASTMW2D-256-1) +{ +ICLASS: VPBROADCASTMW2D +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +PATTERN: EVV 0x3A VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK_B():r:mskw:u32 EMX_BROADCAST_1TO8_16 +IFORM: VPBROADCASTMW2D_YMMu32_MASKu32_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-128-1) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x59 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE1() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:u64 EMX_BROADCAST_1TO2_64 +IFORM: VPBROADCASTQ_XMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-128-2) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 EMX_BROADCAST_1TO2_64 +IFORM: VPBROADCASTQ_XMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-128-3) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 mode64 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR64_B():r:q:u64 EMX_BROADCAST_1TO2_64 +IFORM: VPBROADCASTQ_XMMu64_MASKmskw_GPR64u64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-256-1) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1 +PATTERN: EVV 0x59 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_TUPLE1() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:u64 EMX_BROADCAST_1TO4_64 +IFORM: VPBROADCASTQ_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-256-2) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x59 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 EMX_BROADCAST_1TO4_64 +IFORM: VPBROADCASTQ_YMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPBROADCASTQ (VPBROADCASTQ-256-3) +{ +ICLASS: VPBROADCASTQ +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 mode64 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR64_B():r:q:u64 EMX_BROADCAST_1TO4_64 +IFORM: VPBROADCASTQ_YMMu64_MASKmskw_GPR64u64_AVX512 +} + + +# EMITTING VPBROADCASTW (VPBROADCASTW-128-1) +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 EMX_BROADCAST_1TO8_16 +IFORM: VPBROADCASTW_XMMu16_MASKmskw_XMMu16_AVX512 +} + +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1_WORD +PATTERN: EVV 0x79 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_16_BITS() NELEM_TUPLE1_WORD() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:wrd:u16 EMX_BROADCAST_1TO8_16 +IFORM: VPBROADCASTW_XMMu16_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING VPBROADCASTW (VPBROADCASTW-128-2) +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u16 EMX_BROADCAST_1TO8_16 +IFORM: VPBROADCASTW_XMMu16_MASKmskw_GPR32u16_AVX512 +} + + +# EMITTING VPBROADCASTW (VPBROADCASTW-256-1) +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 EMX_BROADCAST_1TO16_16 +IFORM: VPBROADCASTW_YMMu16_MASKmskw_XMMu16_AVX512 +} + +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1_WORD +PATTERN: EVV 0x79 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_16_BITS() NELEM_TUPLE1_WORD() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:wrd:u16 EMX_BROADCAST_1TO16_16 +IFORM: VPBROADCASTW_YMMu16_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING VPBROADCASTW (VPBROADCASTW-256-2) +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u16 EMX_BROADCAST_1TO16_16 +IFORM: VPBROADCASTW_YMMu16_MASKmskw_GPR32u16_AVX512 +} + + +# EMITTING VPBROADCASTW (VPBROADCASTW-512-1) +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x79 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 EMX_BROADCAST_1TO32_16 +IFORM: VPBROADCASTW_ZMMu16_MASKmskw_XMMu16_AVX512 +} + +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_TUPLE1_WORD +PATTERN: EVV 0x79 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ESIZE_16_BITS() NELEM_TUPLE1_WORD() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:wrd:u16 EMX_BROADCAST_1TO32_16 +IFORM: VPBROADCASTW_ZMMu16_MASKmskw_MEMu16_AVX512 +} + + +# EMITTING VPBROADCASTW (VPBROADCASTW-512-2) +{ +ICLASS: VPBROADCASTW +CPL: 3 +CATEGORY: BROADCAST +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=GPR32_B():r:d:u16 EMX_BROADCAST_1TO32_16 +IFORM: VPBROADCASTW_ZMMu16_MASKmskw_GPR32u16_AVX512 +} + + +# EMITTING VPCMPB (VPCMPB-128-1) +{ +ICLASS: VPCMPB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i8 REG3=XMM_B3():r:dq:i8 IMM0:r:b +IFORM: VPCMPB_MASKmskw_MASKmskw_XMMi8_XMMi8_IMM8_AVX512 +} + +{ +ICLASS: VPCMPB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i8 MEM0:r:dq:i8 IMM0:r:b +IFORM: VPCMPB_MASKmskw_MASKmskw_XMMi8_MEMi8_IMM8_AVX512 +} + + +# EMITTING VPCMPB (VPCMPB-256-1) +{ +ICLASS: VPCMPB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i8 REG3=YMM_B3():r:qq:i8 IMM0:r:b +IFORM: VPCMPB_MASKmskw_MASKmskw_YMMi8_YMMi8_IMM8_AVX512 +} + +{ +ICLASS: VPCMPB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ZEROING=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i8 MEM0:r:qq:i8 IMM0:r:b +IFORM: VPCMPB_MASKmskw_MASKmskw_YMMi8_MEMi8_IMM8_AVX512 +} + + +# EMITTING VPCMPB (VPCMPB-512-1) +{ +ICLASS: VPCMPB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi8 REG3=ZMM_B3():r:zi8 IMM0:r:b +IFORM: VPCMPB_MASKmskw_MASKmskw_ZMMi8_ZMMi8_IMM8_AVX512 +} + +{ +ICLASS: VPCMPB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ZEROING=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi8 MEM0:r:zd:i8 IMM0:r:b +IFORM: VPCMPB_MASKmskw_MASKmskw_ZMMi8_MEMi8_IMM8_AVX512 +} + + +# EMITTING VPCMPD (VPCMPD-128-1) +{ +ICLASS: VPCMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i32 REG3=XMM_B3():r:dq:i32 IMM0:r:b +IFORM: VPCMPD_MASKmskw_MASKmskw_XMMi32_XMMi32_IMM8_AVX512 +} + +{ +ICLASS: VPCMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i32 MEM0:r:vv:i32:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPD_MASKmskw_MASKmskw_XMMi32_MEMi32_IMM8_AVX512 +} + + +# EMITTING VPCMPD (VPCMPD-256-1) +{ +ICLASS: VPCMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i32 REG3=YMM_B3():r:qq:i32 IMM0:r:b +IFORM: VPCMPD_MASKmskw_MASKmskw_YMMi32_YMMi32_IMM8_AVX512 +} + +{ +ICLASS: VPCMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i32 MEM0:r:vv:i32:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPD_MASKmskw_MASKmskw_YMMi32_MEMi32_IMM8_AVX512 +} + + +# EMITTING VPCMPEQB (VPCMPEQB-128-1) +{ +ICLASS: VPCMPEQB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x74 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPCMPEQB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPCMPEQB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x74 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPCMPEQB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPCMPEQB (VPCMPEQB-256-1) +{ +ICLASS: VPCMPEQB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x74 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPCMPEQB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPCMPEQB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x74 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPCMPEQB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPCMPEQB (VPCMPEQB-512-1) +{ +ICLASS: VPCMPEQB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x74 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPCMPEQB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPCMPEQB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x74 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPCMPEQB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPCMPEQD (VPCMPEQD-128-1) +{ +ICLASS: VPCMPEQD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPCMPEQD_MASKmskw_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPCMPEQD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPCMPEQD_MASKmskw_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPCMPEQD (VPCMPEQD-256-1) +{ +ICLASS: VPCMPEQD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPCMPEQD_MASKmskw_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPCMPEQD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPCMPEQD_MASKmskw_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPCMPEQQ (VPCMPEQQ-128-1) +{ +ICLASS: VPCMPEQQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPCMPEQQ_MASKmskw_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPCMPEQQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x29 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPCMPEQQ_MASKmskw_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPCMPEQQ (VPCMPEQQ-256-1) +{ +ICLASS: VPCMPEQQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x29 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPCMPEQQ_MASKmskw_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPCMPEQQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x29 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPCMPEQQ_MASKmskw_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPCMPEQW (VPCMPEQW-128-1) +{ +ICLASS: VPCMPEQW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPCMPEQW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPCMPEQW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPCMPEQW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPCMPEQW (VPCMPEQW-256-1) +{ +ICLASS: VPCMPEQW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPCMPEQW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPCMPEQW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPCMPEQW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPCMPEQW (VPCMPEQW-512-1) +{ +ICLASS: VPCMPEQW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPCMPEQW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPCMPEQW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPCMPEQW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPCMPGTB (VPCMPGTB-128-1) +{ +ICLASS: VPCMPGTB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x64 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPCMPGTB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPCMPGTB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x64 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPCMPGTB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPCMPGTB (VPCMPGTB-256-1) +{ +ICLASS: VPCMPGTB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x64 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPCMPGTB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPCMPGTB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x64 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPCMPGTB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPCMPGTB (VPCMPGTB-512-1) +{ +ICLASS: VPCMPGTB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x64 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPCMPGTB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPCMPGTB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x64 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPCMPGTB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPCMPGTD (VPCMPGTD-128-1) +{ +ICLASS: VPCMPGTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i32 REG3=XMM_B3():r:dq:i32 +IFORM: VPCMPGTD_MASKmskw_MASKmskw_XMMi32_XMMi32_AVX512 +} + +{ +ICLASS: VPCMPGTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPCMPGTD_MASKmskw_MASKmskw_XMMi32_MEMi32_AVX512 +} + + +# EMITTING VPCMPGTD (VPCMPGTD-256-1) +{ +ICLASS: VPCMPGTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x66 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i32 REG3=YMM_B3():r:qq:i32 +IFORM: VPCMPGTD_MASKmskw_MASKmskw_YMMi32_YMMi32_AVX512 +} + +{ +ICLASS: VPCMPGTD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x66 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPCMPGTD_MASKmskw_MASKmskw_YMMi32_MEMi32_AVX512 +} + + +# EMITTING VPCMPGTQ (VPCMPGTQ-128-1) +{ +ICLASS: VPCMPGTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x37 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i64 REG3=XMM_B3():r:dq:i64 +IFORM: VPCMPGTQ_MASKmskw_MASKmskw_XMMi64_XMMi64_AVX512 +} + +{ +ICLASS: VPCMPGTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x37 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPCMPGTQ_MASKmskw_MASKmskw_XMMi64_MEMi64_AVX512 +} + + +# EMITTING VPCMPGTQ (VPCMPGTQ-256-1) +{ +ICLASS: VPCMPGTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x37 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i64 REG3=YMM_B3():r:qq:i64 +IFORM: VPCMPGTQ_MASKmskw_MASKmskw_YMMi64_YMMi64_AVX512 +} + +{ +ICLASS: VPCMPGTQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x37 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPCMPGTQ_MASKmskw_MASKmskw_YMMi64_MEMi64_AVX512 +} + + +# EMITTING VPCMPGTW (VPCMPGTW-128-1) +{ +ICLASS: VPCMPGTW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x65 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPCMPGTW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPCMPGTW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x65 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPCMPGTW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPCMPGTW (VPCMPGTW-256-1) +{ +ICLASS: VPCMPGTW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x65 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPCMPGTW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPCMPGTW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x65 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPCMPGTW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPCMPGTW (VPCMPGTW-512-1) +{ +ICLASS: VPCMPGTW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x65 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPCMPGTW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPCMPGTW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x65 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPCMPGTW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPCMPQ (VPCMPQ-128-1) +{ +ICLASS: VPCMPQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i64 REG3=XMM_B3():r:dq:i64 IMM0:r:b +IFORM: VPCMPQ_MASKmskw_MASKmskw_XMMi64_XMMi64_IMM8_AVX512 +} + +{ +ICLASS: VPCMPQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i64 MEM0:r:vv:i64:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPQ_MASKmskw_MASKmskw_XMMi64_MEMi64_IMM8_AVX512 +} + + +# EMITTING VPCMPQ (VPCMPQ-256-1) +{ +ICLASS: VPCMPQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i64 REG3=YMM_B3():r:qq:i64 IMM0:r:b +IFORM: VPCMPQ_MASKmskw_MASKmskw_YMMi64_YMMi64_IMM8_AVX512 +} + +{ +ICLASS: VPCMPQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i64 MEM0:r:vv:i64:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPQ_MASKmskw_MASKmskw_YMMi64_MEMi64_IMM8_AVX512 +} + + +# EMITTING VPCMPUB (VPCMPUB-128-1) +{ +ICLASS: VPCMPUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 IMM0:r:b +IFORM: VPCMPUB_MASKmskw_MASKmskw_XMMu8_XMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 IMM0:r:b +IFORM: VPCMPUB_MASKmskw_MASKmskw_XMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPCMPUB (VPCMPUB-256-1) +{ +ICLASS: VPCMPUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 IMM0:r:b +IFORM: VPCMPUB_MASKmskw_MASKmskw_YMMu8_YMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ZEROING=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 IMM0:r:b +IFORM: VPCMPUB_MASKmskw_MASKmskw_YMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPCMPUB (VPCMPUB-512-1) +{ +ICLASS: VPCMPUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 IMM0:r:b +IFORM: VPCMPUB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ZEROING=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 IMM0:r:b +IFORM: VPCMPUB_MASKmskw_MASKmskw_ZMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPCMPUD (VPCMPUD-128-1) +{ +ICLASS: VPCMPUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPCMPUD_MASKmskw_MASKmskw_XMMu32_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPUD_MASKmskw_MASKmskw_XMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPCMPUD (VPCMPUD-256-1) +{ +ICLASS: VPCMPUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPCMPUD_MASKmskw_MASKmskw_YMMu32_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPUD_MASKmskw_MASKmskw_YMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPCMPUQ (VPCMPUQ-128-1) +{ +ICLASS: VPCMPUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPCMPUQ_MASKmskw_MASKmskw_XMMu64_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPUQ_MASKmskw_MASKmskw_XMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPCMPUQ (VPCMPUQ-256-1) +{ +ICLASS: VPCMPUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x1E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPCMPUQ_MASKmskw_MASKmskw_YMMu64_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x1E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPCMPUQ_MASKmskw_MASKmskw_YMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPCMPUW (VPCMPUW-128-1) +{ +ICLASS: VPCMPUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPCMPUW_MASKmskw_MASKmskw_XMMu16_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 IMM0:r:b +IFORM: VPCMPUW_MASKmskw_MASKmskw_XMMu16_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPCMPUW (VPCMPUW-256-1) +{ +ICLASS: VPCMPUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 IMM0:r:b +IFORM: VPCMPUW_MASKmskw_MASKmskw_YMMu16_YMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 IMM0:r:b +IFORM: VPCMPUW_MASKmskw_MASKmskw_YMMu16_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPCMPUW (VPCMPUW-512-1) +{ +ICLASS: VPCMPUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 IMM0:r:b +IFORM: VPCMPUW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPCMPUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 IMM0:r:b +IFORM: VPCMPUW_MASKmskw_MASKmskw_ZMMu16_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPCMPW (VPCMPW-128-1) +{ +ICLASS: VPCMPW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 IMM0:r:b +IFORM: VPCMPW_MASKmskw_MASKmskw_XMMi16_XMMi16_IMM8_AVX512 +} + +{ +ICLASS: VPCMPW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 IMM0:r:b +IFORM: VPCMPW_MASKmskw_MASKmskw_XMMi16_MEMi16_IMM8_AVX512 +} + + +# EMITTING VPCMPW (VPCMPW-256-1) +{ +ICLASS: VPCMPW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 IMM0:r:b +IFORM: VPCMPW_MASKmskw_MASKmskw_YMMi16_YMMi16_IMM8_AVX512 +} + +{ +ICLASS: VPCMPW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 IMM0:r:b +IFORM: VPCMPW_MASKmskw_MASKmskw_YMMi16_MEMi16_IMM8_AVX512 +} + + +# EMITTING VPCMPW (VPCMPW-512-1) +{ +ICLASS: VPCMPW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 IMM0:r:b +IFORM: VPCMPW_MASKmskw_MASKmskw_ZMMi16_ZMMi16_IMM8_AVX512 +} + +{ +ICLASS: VPCMPW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3F V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ZEROING=0 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 IMM0:r:b +IFORM: VPCMPW_MASKmskw_MASKmskw_ZMMi16_MEMi16_IMM8_AVX512 +} + + +# EMITTING VPCOMPRESSD (VPCOMPRESSD-128-1) +{ +ICLASS: VPCOMPRESSD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPCOMPRESSD_MEMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPCOMPRESSD (VPCOMPRESSD-128-2) +{ +ICLASS: VPCOMPRESSD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VPCOMPRESSD_XMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPCOMPRESSD (VPCOMPRESSD-256-1) +{ +ICLASS: VPCOMPRESSD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:u32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPCOMPRESSD_MEMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPCOMPRESSD (VPCOMPRESSD-256-2) +{ +ICLASS: VPCOMPRESSD +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VPCOMPRESSD_YMMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPCOMPRESSQ (VPCOMPRESSQ-128-1) +{ +ICLASS: VPCOMPRESSQ +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:u64 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPCOMPRESSQ_MEMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPCOMPRESSQ (VPCOMPRESSQ-128-2) +{ +ICLASS: VPCOMPRESSQ +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPCOMPRESSQ_XMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPCOMPRESSQ (VPCOMPRESSQ-256-1) +{ +ICLASS: VPCOMPRESSQ +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x8B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:u64 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPCOMPRESSQ_MEMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPCOMPRESSQ (VPCOMPRESSQ-256-2) +{ +ICLASS: VPCOMPRESSQ +CPL: 3 +CATEGORY: COMPRESS +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPCOMPRESSQ_YMMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPCONFLICTD (VPCONFLICTD-128-1) +{ +ICLASS: VPCONFLICTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VPCONFLICTD_XMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VPCONFLICTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPCONFLICTD_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPCONFLICTD (VPCONFLICTD-256-1) +{ +ICLASS: VPCONFLICTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VPCONFLICTD_YMMu32_MASKmskw_YMMu32_AVX512 +} + +{ +ICLASS: VPCONFLICTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPCONFLICTD_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPCONFLICTQ (VPCONFLICTQ-128-1) +{ +ICLASS: VPCONFLICTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VPCONFLICTQ_XMMu64_MASKmskw_XMMu64_AVX512 +} + +{ +ICLASS: VPCONFLICTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPCONFLICTQ_XMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPCONFLICTQ (VPCONFLICTQ-256-1) +{ +ICLASS: VPCONFLICTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VPCONFLICTQ_YMMu64_MASKmskw_YMMu64_AVX512 +} + +{ +ICLASS: VPCONFLICTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPCONFLICTQ_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPERMD (VPERMD-256-1) +{ +ICLASS: VPERMD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x36 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPERMD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPERMD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x36 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMI2D (VPERMI2D-128-1) +{ +ICLASS: VPERMI2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPERMI2D_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPERMI2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMI2D_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMI2D (VPERMI2D-256-1) +{ +ICLASS: VPERMI2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPERMI2D_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPERMI2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMI2D_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMI2PD (VPERMI2PD-128-1) +{ +ICLASS: VPERMI2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x77 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VPERMI2PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VPERMI2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x77 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMI2PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMI2PD (VPERMI2PD-256-1) +{ +ICLASS: VPERMI2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x77 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VPERMI2PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VPERMI2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x77 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMI2PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMI2PS (VPERMI2PS-128-1) +{ +ICLASS: VPERMI2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x77 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VPERMI2PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VPERMI2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x77 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMI2PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMI2PS (VPERMI2PS-256-1) +{ +ICLASS: VPERMI2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x77 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VPERMI2PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VPERMI2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x77 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMI2PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMI2Q (VPERMI2Q-128-1) +{ +ICLASS: VPERMI2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPERMI2Q_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPERMI2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMI2Q_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMI2Q (VPERMI2Q-256-1) +{ +ICLASS: VPERMI2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x76 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPERMI2Q_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPERMI2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x76 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMI2Q_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMI2W (VPERMI2W-128-1) +{ +ICLASS: VPERMI2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPERMI2W_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPERMI2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():rw:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPERMI2W_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMI2W (VPERMI2W-256-1) +{ +ICLASS: VPERMI2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPERMI2W_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPERMI2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():rw:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPERMI2W_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMI2W (VPERMI2W-512-1) +{ +ICLASS: VPERMI2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPERMI2W_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPERMI2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():rw:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPERMI2W_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMILPD (VPERMILPD-128-1) +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x05 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VPERMILPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x05 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMILPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VPERMILPD (VPERMILPD-128-2) +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VPERMILPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x0D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMILPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMILPD (VPERMILPD-256-1) +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x05 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VPERMILPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x05 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMILPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VPERMILPD (VPERMILPD-256-2) +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VPERMILPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VPERMILPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x0D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMILPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMILPS (VPERMILPS-128-1) +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x04 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VPERMILPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x04 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMILPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VPERMILPS (VPERMILPS-128-2) +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VPERMILPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x0C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMILPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMILPS (VPERMILPS-256-1) +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x04 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VPERMILPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x04 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMILPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VPERMILPS (VPERMILPS-256-2) +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VPERMILPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VPERMILPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x0C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMILPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMPD (VPERMPD-256-1) +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x01 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VPERMPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x01 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VPERMPD (VPERMPD-256-2) +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VPERMPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VPERMPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x16 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMPS (VPERMPS-256-1) +{ +ICLASS: VPERMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x16 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VPERMPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VPERMPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x16 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMQ (VPERMQ-256-1) +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x00 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPERMQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x00 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPERMQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPERMQ (VPERMQ-256-2) +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x36 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPERMQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPERMQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x36 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMT2D (VPERMT2D-128-1) +{ +ICLASS: VPERMT2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPERMT2D_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPERMT2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMT2D_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMT2D (VPERMT2D-256-1) +{ +ICLASS: VPERMT2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPERMT2D_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPERMT2D +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPERMT2D_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPERMT2PD (VPERMT2PD-128-1) +{ +ICLASS: VPERMT2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VPERMT2PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VPERMT2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMT2PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMT2PD (VPERMT2PD-256-1) +{ +ICLASS: VPERMT2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VPERMT2PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VPERMT2PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VPERMT2PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VPERMT2PS (VPERMT2PS-128-1) +{ +ICLASS: VPERMT2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VPERMT2PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VPERMT2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMT2PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMT2PS (VPERMT2PS-256-1) +{ +ICLASS: VPERMT2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VPERMT2PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VPERMT2PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VPERMT2PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VPERMT2Q (VPERMT2Q-128-1) +{ +ICLASS: VPERMT2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPERMT2Q_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPERMT2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMT2Q_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMT2Q (VPERMT2Q-256-1) +{ +ICLASS: VPERMT2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPERMT2Q_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPERMT2Q +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x7E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPERMT2Q_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPERMT2W (VPERMT2W-128-1) +{ +ICLASS: VPERMT2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPERMT2W_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPERMT2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():rw:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPERMT2W_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMT2W (VPERMT2W-256-1) +{ +ICLASS: VPERMT2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPERMT2W_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPERMT2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():rw:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPERMT2W_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMT2W (VPERMT2W-512-1) +{ +ICLASS: VPERMT2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPERMT2W_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPERMT2W +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():rw:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPERMT2W_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMW (VPERMW-128-1) +{ +ICLASS: VPERMW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPERMW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPERMW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x8D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPERMW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMW (VPERMW-256-1) +{ +ICLASS: VPERMW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPERMW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPERMW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x8D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPERMW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPERMW (VPERMW-512-1) +{ +ICLASS: VPERMW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPERMW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPERMW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x8D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPERMW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPEXPANDD (VPEXPANDD-128-1) +{ +ICLASS: VPEXPANDD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x89 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u32 +IFORM: VPEXPANDD_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPEXPANDD (VPEXPANDD-128-2) +{ +ICLASS: VPEXPANDD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x89 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VPEXPANDD_XMMu32_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPEXPANDD (VPEXPANDD-256-1) +{ +ICLASS: VPEXPANDD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x89 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u32 +IFORM: VPEXPANDD_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPEXPANDD (VPEXPANDD-256-2) +{ +ICLASS: VPEXPANDD +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x89 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VPEXPANDD_YMMu32_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPEXPANDQ (VPEXPANDQ-128-1) +{ +ICLASS: VPEXPANDQ +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x89 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u64 +IFORM: VPEXPANDQ_XMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPEXPANDQ (VPEXPANDQ-128-2) +{ +ICLASS: VPEXPANDQ +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x89 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VPEXPANDQ_XMMu64_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPEXPANDQ (VPEXPANDQ-256-1) +{ +ICLASS: VPEXPANDQ +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASK_VARIABLE_MEMOP MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x89 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u64 +IFORM: VPEXPANDQ_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPEXPANDQ (VPEXPANDQ-256-2) +{ +ICLASS: VPEXPANDQ +CPL: 3 +CATEGORY: EXPAND +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x89 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VPEXPANDQ_YMMu64_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPEXTRB (VPEXTRB-128-1) +{ +ICLASS: VPEXTRB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x14 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=GPR32_B():w:d:u8 REG1=XMM_R3():r:dq:u8 IMM0:r:b +IFORM: VPEXTRB_GPR32u8_XMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPEXTRB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE_BYTE +PATTERN: EVV 0x14 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_GPR_WRITER_STORE_BYTE() +OPERANDS: MEM0:w:b:u8 REG0=XMM_R3():r:dq:u8 IMM0:r:b +IFORM: VPEXTRB_MEMu8_XMMu8_IMM8_AVX512 +} + + +# EMITTING VPEXTRD (VPEXTRD-128-1) +{ +ICLASS: VPEXTRD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x16 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=GPR32_B():w:d:u32 REG1=XMM_R3():r:dq:u32 IMM0:r:b +IFORM: VPEXTRD_GPR32u32_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPEXTRD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE +PATTERN: EVV 0x16 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 MASK=0 UIMM8() ESIZE_32_BITS() NELEM_GPR_WRITER_STORE() +OPERANDS: MEM0:w:d:u32 REG0=XMM_R3():r:dq:u32 IMM0:r:b +IFORM: VPEXTRD_MEMu32_XMMu32_IMM8_AVX512 +} + + +# EMITTING VPEXTRQ (VPEXTRQ-128-1) +{ +ICLASS: VPEXTRQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x16 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 mode64 NOEVSR ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=GPR64_B():w:q:u64 REG1=XMM_R3():r:dq:u64 IMM0:r:b +IFORM: VPEXTRQ_GPR64u64_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPEXTRQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE +PATTERN: EVV 0x16 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 mode64 NOEVSR ZEROING=0 MASK=0 UIMM8() ESIZE_64_BITS() NELEM_GPR_WRITER_STORE() +OPERANDS: MEM0:w:q:u64 REG0=XMM_R3():r:dq:u64 IMM0:r:b +IFORM: VPEXTRQ_MEMu64_XMMu64_IMM8_AVX512 +} + + +# EMITTING VPEXTRW (VPEXTRW-128-1) +{ +ICLASS: VPEXTRW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x15 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=GPR32_B():w:d:u16 REG1=XMM_R3():r:dq:u16 IMM0:r:b +IFORM: VPEXTRW_GPR32u16_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPEXTRW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_WRITER_STORE_WORD +PATTERN: EVV 0x15 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() ESIZE_16_BITS() NELEM_GPR_WRITER_STORE_WORD() +OPERANDS: MEM0:w:wrd:u16 REG0=XMM_R3():r:dq:u16 IMM0:r:b +IFORM: VPEXTRW_MEMu16_XMMu16_IMM8_AVX512 +} + + +# EMITTING VPEXTRW (VPEXTRW-128-2) +{ +ICLASS: VPEXTRW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0xC5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=GPR32_R():w:d:u16 REG1=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPEXTRW_GPR32u16_XMMu16_IMM8_AVX512 +} + + +# EMITTING VPGATHERDD (VPGATHERDD-128-1) +{ +ICLASS: VPGATHERDD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x90 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASKNOT0():rw:mskw MEM0:r:dq:u32 +IFORM: VPGATHERDD_XMMu32_MASKmskw_MEMu32_AVX512_VL128 +} + + +# EMITTING VPGATHERDD (VPGATHERDD-256-1) +{ +ICLASS: VPGATHERDD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x90 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASKNOT0():rw:mskw MEM0:r:qq:u32 +IFORM: VPGATHERDD_YMMu32_MASKmskw_MEMu32_AVX512_VL256 +} + + +# EMITTING VPGATHERDQ (VPGATHERDQ-128-1) +{ +ICLASS: VPGATHERDQ +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x90 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASKNOT0():rw:mskw MEM0:r:dq:u64 +IFORM: VPGATHERDQ_XMMu64_MASKmskw_MEMu64_AVX512_VL128 +} + + +# EMITTING VPGATHERDQ (VPGATHERDQ-256-1) +{ +ICLASS: VPGATHERDQ +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x90 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASKNOT0():rw:mskw MEM0:r:qq:u64 +IFORM: VPGATHERDQ_YMMu64_MASKmskw_MEMu64_AVX512_VL256 +} + + +# EMITTING VPGATHERQD (VPGATHERQD-128-1) +{ +ICLASS: VPGATHERQD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x91 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASKNOT0():rw:mskw MEM0:r:q:u32 +IFORM: VPGATHERQD_XMMu32_MASKmskw_MEMu32_AVX512_VL128 +} + + +# EMITTING VPGATHERQD (VPGATHERQD-256-1) +{ +ICLASS: VPGATHERQD +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x91 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASKNOT0():rw:mskw MEM0:r:dq:u32 +IFORM: VPGATHERQD_XMMu32_MASKmskw_MEMu32_AVX512_VL256 +} + + +# EMITTING VPGATHERQQ (VPGATHERQQ-128-1) +{ +ICLASS: VPGATHERQQ +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x91 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASKNOT0():rw:mskw MEM0:r:dq:u64 +IFORM: VPGATHERQQ_XMMu64_MASKmskw_MEMu64_AVX512_VL128 +} + + +# EMITTING VPGATHERQQ (VPGATHERQQ-256-1) +{ +ICLASS: VPGATHERQQ +CPL: 3 +CATEGORY: GATHER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES GATHER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0x91 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASKNOT0():rw:mskw MEM0:r:qq:u64 +IFORM: VPGATHERQQ_YMMu64_MASKmskw_MEMu64_AVX512_VL256 +} + + +# EMITTING VPINSRB (VPINSRB-128-1) +{ +ICLASS: VPINSRB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x20 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=XMM_N3():r:dq:u8 REG2=GPR32_B():r:d:u8 IMM0:r:b +IFORM: VPINSRB_XMMu8_XMMu8_GPR32u8_IMM8_AVX512 +} + +{ +ICLASS: VPINSRB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_READER_BYTE +PATTERN: EVV 0x20 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_GPR_READER_BYTE() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=XMM_N3():r:dq:u8 MEM0:r:b:u8 IMM0:r:b +IFORM: VPINSRB_XMMu8_XMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPINSRD (VPINSRD-128-1) +{ +ICLASS: VPINSRD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x22 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=XMM_N3():r:dq:u32 REG2=GPR32_B():r:d:u32 IMM0:r:b +IFORM: VPINSRD_XMMu32_XMMu32_GPR32u32_IMM8_AVX512 +} + +{ +ICLASS: VPINSRD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_READER +PATTERN: EVV 0x22 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 MASK=0 UIMM8() ESIZE_32_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=XMM_N3():r:dq:u32 MEM0:r:d:u32 IMM0:r:b +IFORM: VPINSRD_XMMu32_XMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPINSRQ (VPINSRQ-128-1) +{ +ICLASS: VPINSRQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0x22 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 mode64 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=XMM_N3():r:dq:u64 REG2=GPR64_B():r:q:u64 IMM0:r:b +IFORM: VPINSRQ_XMMu64_XMMu64_GPR64u64_IMM8_AVX512 +} + +{ +ICLASS: VPINSRQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_READER +PATTERN: EVV 0x22 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 mode64 ZEROING=0 MASK=0 UIMM8() ESIZE_64_BITS() NELEM_GPR_READER() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=XMM_N3():r:dq:u64 MEM0:r:q:u64 IMM0:r:b +IFORM: VPINSRQ_XMMu64_XMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPINSRW (VPINSRW-128-1) +{ +ICLASS: VPINSRW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +PATTERN: EVV 0xC4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=XMM_N3():r:dq:u16 REG2=GPR32_B():r:d:u16 IMM0:r:b +IFORM: VPINSRW_XMMu16_XMMu16_GPR32u16_IMM8_AVX512 +} + +{ +ICLASS: VPINSRW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128N +EXCEPTIONS: AVX512-E9NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_GPR_READER_WORD +PATTERN: EVV 0xC4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 MASK=0 UIMM8() ESIZE_16_BITS() NELEM_GPR_READER_WORD() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=XMM_N3():r:dq:u16 MEM0:r:wrd:u16 IMM0:r:b +IFORM: VPINSRW_XMMu16_XMMu16_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPLZCNTD (VPLZCNTD-128-1) +{ +ICLASS: VPLZCNTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x44 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 +IFORM: VPLZCNTD_XMMu32_MASKmskw_XMMu32_AVX512 +} + +{ +ICLASS: VPLZCNTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x44 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPLZCNTD_XMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPLZCNTD (VPLZCNTD-256-1) +{ +ICLASS: VPLZCNTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x44 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 +IFORM: VPLZCNTD_YMMu32_MASKmskw_YMMu32_AVX512 +} + +{ +ICLASS: VPLZCNTD +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x44 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPLZCNTD_YMMu32_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING VPLZCNTQ (VPLZCNTQ-128-1) +{ +ICLASS: VPLZCNTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x44 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 +IFORM: VPLZCNTQ_XMMu64_MASKmskw_XMMu64_AVX512 +} + +{ +ICLASS: VPLZCNTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x44 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPLZCNTQ_XMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPLZCNTQ (VPLZCNTQ-256-1) +{ +ICLASS: VPLZCNTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x44 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 +IFORM: VPLZCNTQ_YMMu64_MASKmskw_YMMu64_AVX512 +} + +{ +ICLASS: VPLZCNTQ +CPL: 3 +CATEGORY: CONFLICT +EXTENSION: AVX512EVEX +ISA_SET: AVX512CD_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x44 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPLZCNTQ_YMMu64_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING VPMADDUBSW (VPMADDUBSW-128-1) +{ +ICLASS: VPMADDUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x04 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPMADDUBSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPMADDUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x04 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPMADDUBSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMADDUBSW (VPMADDUBSW-256-1) +{ +ICLASS: VPMADDUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x04 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPMADDUBSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPMADDUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x04 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPMADDUBSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMADDUBSW (VPMADDUBSW-512-1) +{ +ICLASS: VPMADDUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x04 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPMADDUBSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPMADDUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x04 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPMADDUBSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMADDWD (VPMADDWD-128-1) +{ +ICLASS: VPMADDWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPMADDWD_XMMi32_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPMADDWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPMADDWD_XMMi32_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMADDWD (VPMADDWD-256-1) +{ +ICLASS: VPMADDWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPMADDWD_YMMi32_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPMADDWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPMADDWD_YMMi32_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMADDWD (VPMADDWD-512-1) +{ +ICLASS: VPMADDWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPMADDWD_ZMMi32_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPMADDWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPMADDWD_ZMMi32_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMAXSB (VPMAXSB-128-1) +{ +ICLASS: VPMAXSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 REG3=XMM_B3():r:dq:i8 +IFORM: VPMAXSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512 +} + +{ +ICLASS: VPMAXSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 MEM0:r:dq:i8 +IFORM: VPMAXSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512 +} + + +# EMITTING VPMAXSB (VPMAXSB-256-1) +{ +ICLASS: VPMAXSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 REG3=YMM_B3():r:qq:i8 +IFORM: VPMAXSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512 +} + +{ +ICLASS: VPMAXSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 MEM0:r:qq:i8 +IFORM: VPMAXSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512 +} + + +# EMITTING VPMAXSB (VPMAXSB-512-1) +{ +ICLASS: VPMAXSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 REG3=ZMM_B3():r:zi8 +IFORM: VPMAXSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512 +} + +{ +ICLASS: VPMAXSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 MEM0:r:zd:i8 +IFORM: VPMAXSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512 +} + + +# EMITTING VPMAXSD (VPMAXSD-128-1) +{ +ICLASS: VPMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 REG3=XMM_B3():r:dq:i32 +IFORM: VPMAXSD_XMMi32_MASKmskw_XMMi32_XMMi32_AVX512 +} + +{ +ICLASS: VPMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMAXSD_XMMi32_MASKmskw_XMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMAXSD (VPMAXSD-256-1) +{ +ICLASS: VPMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 REG3=YMM_B3():r:qq:i32 +IFORM: VPMAXSD_YMMi32_MASKmskw_YMMi32_YMMi32_AVX512 +} + +{ +ICLASS: VPMAXSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMAXSD_YMMi32_MASKmskw_YMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMAXSQ (VPMAXSQ-128-1) +{ +ICLASS: VPMAXSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i64 REG3=XMM_B3():r:dq:i64 +IFORM: VPMAXSQ_XMMi64_MASKmskw_XMMi64_XMMi64_AVX512 +} + +{ +ICLASS: VPMAXSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPMAXSQ_XMMi64_MASKmskw_XMMi64_MEMi64_AVX512 +} + + +# EMITTING VPMAXSQ (VPMAXSQ-256-1) +{ +ICLASS: VPMAXSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i64 REG3=YMM_B3():r:qq:i64 +IFORM: VPMAXSQ_YMMi64_MASKmskw_YMMi64_YMMi64_AVX512 +} + +{ +ICLASS: VPMAXSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPMAXSQ_YMMi64_MASKmskw_YMMi64_MEMi64_AVX512 +} + + +# EMITTING VPMAXSW (VPMAXSW-128-1) +{ +ICLASS: VPMAXSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPMAXSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPMAXSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPMAXSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMAXSW (VPMAXSW-256-1) +{ +ICLASS: VPMAXSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPMAXSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPMAXSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPMAXSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMAXSW (VPMAXSW-512-1) +{ +ICLASS: VPMAXSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPMAXSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPMAXSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPMAXSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMAXUB (VPMAXUB-128-1) +{ +ICLASS: VPMAXUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPMAXUB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPMAXUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPMAXUB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMAXUB (VPMAXUB-256-1) +{ +ICLASS: VPMAXUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPMAXUB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPMAXUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPMAXUB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMAXUB (VPMAXUB-512-1) +{ +ICLASS: VPMAXUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDE V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPMAXUB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPMAXUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDE V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPMAXUB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMAXUD (VPMAXUD-128-1) +{ +ICLASS: VPMAXUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPMAXUD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPMAXUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMAXUD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMAXUD (VPMAXUD-256-1) +{ +ICLASS: VPMAXUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPMAXUD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPMAXUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMAXUD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMAXUQ (VPMAXUQ-128-1) +{ +ICLASS: VPMAXUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPMAXUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPMAXUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMAXUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMAXUQ (VPMAXUQ-256-1) +{ +ICLASS: VPMAXUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3F V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPMAXUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPMAXUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3F V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMAXUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMAXUW (VPMAXUW-128-1) +{ +ICLASS: VPMAXUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPMAXUW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPMAXUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPMAXUW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMAXUW (VPMAXUW-256-1) +{ +ICLASS: VPMAXUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPMAXUW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPMAXUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPMAXUW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMAXUW (VPMAXUW-512-1) +{ +ICLASS: VPMAXUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPMAXUW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPMAXUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPMAXUW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMINSB (VPMINSB-128-1) +{ +ICLASS: VPMINSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 REG3=XMM_B3():r:dq:i8 +IFORM: VPMINSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512 +} + +{ +ICLASS: VPMINSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x38 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 MEM0:r:dq:i8 +IFORM: VPMINSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512 +} + + +# EMITTING VPMINSB (VPMINSB-256-1) +{ +ICLASS: VPMINSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 REG3=YMM_B3():r:qq:i8 +IFORM: VPMINSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512 +} + +{ +ICLASS: VPMINSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x38 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 MEM0:r:qq:i8 +IFORM: VPMINSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512 +} + + +# EMITTING VPMINSB (VPMINSB-512-1) +{ +ICLASS: VPMINSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x38 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 REG3=ZMM_B3():r:zi8 +IFORM: VPMINSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512 +} + +{ +ICLASS: VPMINSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x38 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 MEM0:r:zd:i8 +IFORM: VPMINSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512 +} + + +# EMITTING VPMINSD (VPMINSD-128-1) +{ +ICLASS: VPMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 REG3=XMM_B3():r:dq:i32 +IFORM: VPMINSD_XMMi32_MASKmskw_XMMi32_XMMi32_AVX512 +} + +{ +ICLASS: VPMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x39 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMINSD_XMMi32_MASKmskw_XMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMINSD (VPMINSD-256-1) +{ +ICLASS: VPMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 REG3=YMM_B3():r:qq:i32 +IFORM: VPMINSD_YMMi32_MASKmskw_YMMi32_YMMi32_AVX512 +} + +{ +ICLASS: VPMINSD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x39 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMINSD_YMMi32_MASKmskw_YMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMINSQ (VPMINSQ-128-1) +{ +ICLASS: VPMINSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i64 REG3=XMM_B3():r:dq:i64 +IFORM: VPMINSQ_XMMi64_MASKmskw_XMMi64_XMMi64_AVX512 +} + +{ +ICLASS: VPMINSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x39 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPMINSQ_XMMi64_MASKmskw_XMMi64_MEMi64_AVX512 +} + + +# EMITTING VPMINSQ (VPMINSQ-256-1) +{ +ICLASS: VPMINSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x39 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i64 REG3=YMM_B3():r:qq:i64 +IFORM: VPMINSQ_YMMi64_MASKmskw_YMMi64_YMMi64_AVX512 +} + +{ +ICLASS: VPMINSQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x39 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i64 MEM0:r:vv:i64:TXT=BCASTSTR +IFORM: VPMINSQ_YMMi64_MASKmskw_YMMi64_MEMi64_AVX512 +} + + +# EMITTING VPMINSW (VPMINSW-128-1) +{ +ICLASS: VPMINSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPMINSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPMINSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPMINSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMINSW (VPMINSW-256-1) +{ +ICLASS: VPMINSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPMINSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPMINSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPMINSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMINSW (VPMINSW-512-1) +{ +ICLASS: VPMINSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPMINSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPMINSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xEA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPMINSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMINUB (VPMINUB-128-1) +{ +ICLASS: VPMINUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPMINUB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPMINUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPMINUB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMINUB (VPMINUB-256-1) +{ +ICLASS: VPMINUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPMINUB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPMINUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPMINUB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMINUB (VPMINUB-512-1) +{ +ICLASS: VPMINUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xDA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPMINUB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPMINUB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xDA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPMINUB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMINUD (VPMINUD-128-1) +{ +ICLASS: VPMINUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPMINUD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPMINUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMINUD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMINUD (VPMINUD-256-1) +{ +ICLASS: VPMINUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPMINUD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPMINUD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMINUD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMINUQ (VPMINUQ-128-1) +{ +ICLASS: VPMINUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPMINUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPMINUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMINUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMINUQ (VPMINUQ-256-1) +{ +ICLASS: VPMINUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPMINUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPMINUQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x3B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMINUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMINUW (VPMINUW-128-1) +{ +ICLASS: VPMINUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPMINUW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPMINUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPMINUW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMINUW (VPMINUW-256-1) +{ +ICLASS: VPMINUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPMINUW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPMINUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPMINUW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMINUW (VPMINUW-512-1) +{ +ICLASS: VPMINUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x3A V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPMINUW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPMINUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x3A V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPMINUW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMOVB2M (VPMOVB2M-128-1) +{ +ICLASS: VPMOVB2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x29 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=XMM_B3():r:dq:u8 +IFORM: VPMOVB2M_MASKmskw_XMMu8_AVX512 +} + + +# EMITTING VPMOVB2M (VPMOVB2M-256-1) +{ +ICLASS: VPMOVB2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x29 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=YMM_B3():r:qq:u8 +IFORM: VPMOVB2M_MASKmskw_YMMu8_AVX512 +} + + +# EMITTING VPMOVB2M (VPMOVB2M-512-1) +{ +ICLASS: VPMOVB2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x29 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=ZMM_B3():r:zu8 +IFORM: VPMOVB2M_MASKmskw_ZMMu8_AVX512 +} + + +# EMITTING VPMOVD2M (VPMOVD2M-128-1) +{ +ICLASS: VPMOVD2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x39 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=XMM_B3():r:dq:u32 +IFORM: VPMOVD2M_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVD2M (VPMOVD2M-256-1) +{ +ICLASS: VPMOVD2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x39 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=YMM_B3():r:qq:u32 +IFORM: VPMOVD2M_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVD2M (VPMOVD2M-512-1) +{ +ICLASS: VPMOVD2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x39 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=ZMM_B3():r:zu32 +IFORM: VPMOVD2M_MASKmskw_ZMMu32_AVX512 +} + + +# EMITTING VPMOVDB (VPMOVDB-128-1) +{ +ICLASS: VPMOVDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x31 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VPMOVDB_XMMu8_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVDB (VPMOVDB-128-2) +{ +ICLASS: VPMOVDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x31 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:d:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPMOVDB_MEMu8_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVDB (VPMOVDB-256-1) +{ +ICLASS: VPMOVDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x31 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VPMOVDB_XMMu8_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVDB (VPMOVDB-256-2) +{ +ICLASS: VPMOVDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x31 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:q:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPMOVDB_MEMu8_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVDW (VPMOVDW-128-1) +{ +ICLASS: VPMOVDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x33 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VPMOVDW_XMMu16_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVDW (VPMOVDW-128-2) +{ +ICLASS: VPMOVDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x33 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:u16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPMOVDW_MEMu16_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVDW (VPMOVDW-256-1) +{ +ICLASS: VPMOVDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x33 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VPMOVDW_XMMu16_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVDW (VPMOVDW-256-2) +{ +ICLASS: VPMOVDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x33 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:u16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPMOVDW_MEMu16_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVM2B (VPMOVM2B-128-1) +{ +ICLASS: VPMOVM2B +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x28 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK_B():r:mskw +IFORM: VPMOVM2B_XMMu8_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2B (VPMOVM2B-256-1) +{ +ICLASS: VPMOVM2B +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x28 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK_B():r:mskw +IFORM: VPMOVM2B_YMMu8_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2B (VPMOVM2B-512-1) +{ +ICLASS: VPMOVM2B +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x28 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK_B():r:mskw +IFORM: VPMOVM2B_ZMMu8_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2D (VPMOVM2D-128-1) +{ +ICLASS: VPMOVM2D +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x38 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK_B():r:mskw +IFORM: VPMOVM2D_XMMu32_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2D (VPMOVM2D-256-1) +{ +ICLASS: VPMOVM2D +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x38 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK_B():r:mskw +IFORM: VPMOVM2D_YMMu32_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2D (VPMOVM2D-512-1) +{ +ICLASS: VPMOVM2D +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x38 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu32 REG1=MASK_B():r:mskw +IFORM: VPMOVM2D_ZMMu32_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2Q (VPMOVM2Q-128-1) +{ +ICLASS: VPMOVM2Q +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x38 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK_B():r:mskw +IFORM: VPMOVM2Q_XMMu64_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2Q (VPMOVM2Q-256-1) +{ +ICLASS: VPMOVM2Q +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x38 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK_B():r:mskw +IFORM: VPMOVM2Q_YMMu64_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2Q (VPMOVM2Q-512-1) +{ +ICLASS: VPMOVM2Q +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x38 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK_B():r:mskw +IFORM: VPMOVM2Q_ZMMu64_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2W (VPMOVM2W-128-1) +{ +ICLASS: VPMOVM2W +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x28 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK_B():r:mskw +IFORM: VPMOVM2W_XMMu16_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2W (VPMOVM2W-256-1) +{ +ICLASS: VPMOVM2W +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x28 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK_B():r:mskw +IFORM: VPMOVM2W_YMMu16_MASKmskw_AVX512 +} + + +# EMITTING VPMOVM2W (VPMOVM2W-512-1) +{ +ICLASS: VPMOVM2W +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x28 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK_B():r:mskw +IFORM: VPMOVM2W_ZMMu16_MASKmskw_AVX512 +} + + +# EMITTING VPMOVQ2M (VPMOVQ2M-128-1) +{ +ICLASS: VPMOVQ2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x39 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=XMM_B3():r:dq:u64 +IFORM: VPMOVQ2M_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQ2M (VPMOVQ2M-256-1) +{ +ICLASS: VPMOVQ2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x39 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=YMM_B3():r:qq:u64 +IFORM: VPMOVQ2M_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVQ2M (VPMOVQ2M-512-1) +{ +ICLASS: VPMOVQ2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x39 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=ZMM_B3():r:zu64 +IFORM: VPMOVQ2M_MASKmskw_ZMMu64_AVX512 +} + + +# EMITTING VPMOVQB (VPMOVQB-128-1) +{ +ICLASS: VPMOVQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x32 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPMOVQB_XMMu8_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQB (VPMOVQB-128-2) +{ +ICLASS: VPMOVQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x32 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:wrd:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPMOVQB_MEMu8_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQB (VPMOVQB-256-1) +{ +ICLASS: VPMOVQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x32 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPMOVQB_XMMu8_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVQB (VPMOVQB-256-2) +{ +ICLASS: VPMOVQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x32 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:d:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPMOVQB_MEMu8_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVQD (VPMOVQD-128-1) +{ +ICLASS: VPMOVQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x35 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPMOVQD_XMMu32_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQD (VPMOVQD-128-2) +{ +ICLASS: VPMOVQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x35 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:u32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPMOVQD_MEMu32_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQD (VPMOVQD-256-1) +{ +ICLASS: VPMOVQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x35 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPMOVQD_XMMu32_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVQD (VPMOVQD-256-2) +{ +ICLASS: VPMOVQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x35 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPMOVQD_MEMu32_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVQW (VPMOVQW-128-1) +{ +ICLASS: VPMOVQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x34 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPMOVQW_XMMu16_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQW (VPMOVQW-128-2) +{ +ICLASS: VPMOVQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x34 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:d:u16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPMOVQW_MEMu16_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVQW (VPMOVQW-256-1) +{ +ICLASS: VPMOVQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x34 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPMOVQW_XMMu16_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVQW (VPMOVQW-256-2) +{ +ICLASS: VPMOVQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x34 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:q:u16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPMOVQW_MEMu16_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVSDB (VPMOVSDB-128-1) +{ +ICLASS: VPMOVSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x21 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:i32 +IFORM: VPMOVSDB_XMMi8_MASKmskw_XMMi32_AVX512 +} + + +# EMITTING VPMOVSDB (VPMOVSDB-128-2) +{ +ICLASS: VPMOVSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x21 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:d:i8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:i32 +IFORM: VPMOVSDB_MEMi8_MASKmskw_XMMi32_AVX512 +} + + +# EMITTING VPMOVSDB (VPMOVSDB-256-1) +{ +ICLASS: VPMOVSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x21 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:i32 +IFORM: VPMOVSDB_XMMi8_MASKmskw_YMMi32_AVX512 +} + + +# EMITTING VPMOVSDB (VPMOVSDB-256-2) +{ +ICLASS: VPMOVSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x21 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:q:i8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:i32 +IFORM: VPMOVSDB_MEMi8_MASKmskw_YMMi32_AVX512 +} + + +# EMITTING VPMOVSDW (VPMOVSDW-128-1) +{ +ICLASS: VPMOVSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:i32 +IFORM: VPMOVSDW_XMMi16_MASKmskw_XMMi32_AVX512 +} + + +# EMITTING VPMOVSDW (VPMOVSDW-128-2) +{ +ICLASS: VPMOVSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x23 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:i16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:i32 +IFORM: VPMOVSDW_MEMi16_MASKmskw_XMMi32_AVX512 +} + + +# EMITTING VPMOVSDW (VPMOVSDW-256-1) +{ +ICLASS: VPMOVSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:i32 +IFORM: VPMOVSDW_XMMi16_MASKmskw_YMMi32_AVX512 +} + + +# EMITTING VPMOVSDW (VPMOVSDW-256-2) +{ +ICLASS: VPMOVSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x23 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:i16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:i32 +IFORM: VPMOVSDW_MEMi16_MASKmskw_YMMi32_AVX512 +} + + +# EMITTING VPMOVSQB (VPMOVSQB-128-1) +{ +ICLASS: VPMOVSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x22 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:i64 +IFORM: VPMOVSQB_XMMi8_MASKmskw_XMMi64_AVX512 +} + + +# EMITTING VPMOVSQB (VPMOVSQB-128-2) +{ +ICLASS: VPMOVSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x22 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:wrd:i8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:i64 +IFORM: VPMOVSQB_MEMi8_MASKmskw_XMMi64_AVX512 +} + + +# EMITTING VPMOVSQB (VPMOVSQB-256-1) +{ +ICLASS: VPMOVSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x22 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:i64 +IFORM: VPMOVSQB_XMMi8_MASKmskw_YMMi64_AVX512 +} + + +# EMITTING VPMOVSQB (VPMOVSQB-256-2) +{ +ICLASS: VPMOVSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x22 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:d:i8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:i64 +IFORM: VPMOVSQB_MEMi8_MASKmskw_YMMi64_AVX512 +} + + +# EMITTING VPMOVSQD (VPMOVSQD-128-1) +{ +ICLASS: VPMOVSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:i64 +IFORM: VPMOVSQD_XMMi32_MASKmskw_XMMi64_AVX512 +} + + +# EMITTING VPMOVSQD (VPMOVSQD-128-2) +{ +ICLASS: VPMOVSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x25 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:i32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:i64 +IFORM: VPMOVSQD_MEMi32_MASKmskw_XMMi64_AVX512 +} + + +# EMITTING VPMOVSQD (VPMOVSQD-256-1) +{ +ICLASS: VPMOVSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:i64 +IFORM: VPMOVSQD_XMMi32_MASKmskw_YMMi64_AVX512 +} + + +# EMITTING VPMOVSQD (VPMOVSQD-256-2) +{ +ICLASS: VPMOVSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x25 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:i32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:i64 +IFORM: VPMOVSQD_MEMi32_MASKmskw_YMMi64_AVX512 +} + + +# EMITTING VPMOVSQW (VPMOVSQW-128-1) +{ +ICLASS: VPMOVSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x24 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:i64 +IFORM: VPMOVSQW_XMMi16_MASKmskw_XMMi64_AVX512 +} + + +# EMITTING VPMOVSQW (VPMOVSQW-128-2) +{ +ICLASS: VPMOVSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x24 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:d:i16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:i64 +IFORM: VPMOVSQW_MEMi16_MASKmskw_XMMi64_AVX512 +} + + +# EMITTING VPMOVSQW (VPMOVSQW-256-1) +{ +ICLASS: VPMOVSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x24 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:i64 +IFORM: VPMOVSQW_XMMi16_MASKmskw_YMMi64_AVX512 +} + + +# EMITTING VPMOVSQW (VPMOVSQW-256-2) +{ +ICLASS: VPMOVSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x24 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:q:i16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:i64 +IFORM: VPMOVSQW_MEMi16_MASKmskw_YMMi64_AVX512 +} + + +# EMITTING VPMOVSWB (VPMOVSWB-128-1) +{ +ICLASS: VPMOVSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x20 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:i16 +IFORM: VPMOVSWB_XMMi8_MASKmskw_XMMi16_AVX512 +} + + +# EMITTING VPMOVSWB (VPMOVSWB-128-2) +{ +ICLASS: VPMOVSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x20 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:i8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:i16 +IFORM: VPMOVSWB_MEMi8_MASKmskw_XMMi16_AVX512 +} + + +# EMITTING VPMOVSWB (VPMOVSWB-256-1) +{ +ICLASS: VPMOVSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x20 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:i16 +IFORM: VPMOVSWB_XMMi8_MASKmskw_YMMi16_AVX512 +} + + +# EMITTING VPMOVSWB (VPMOVSWB-256-2) +{ +ICLASS: VPMOVSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x20 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:i8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:i16 +IFORM: VPMOVSWB_MEMi8_MASKmskw_YMMi16_AVX512 +} + + +# EMITTING VPMOVSWB (VPMOVSWB-512-1) +{ +ICLASS: VPMOVSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x20 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zi16 +IFORM: VPMOVSWB_YMMi8_MASKmskw_ZMMi16_AVX512 +} + + +# EMITTING VPMOVSWB (VPMOVSWB-512-2) +{ +ICLASS: VPMOVSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x20 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:i8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zi16 +IFORM: VPMOVSWB_MEMi8_MASKmskw_ZMMi16_AVX512 +} + + +# EMITTING VPMOVSXBD (VPMOVSXBD-128-1) +{ +ICLASS: VPMOVSXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x21 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBD_XMMi32_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x21 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:i8 +IFORM: VPMOVSXBD_XMMi32_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBD (VPMOVSXBD-256-1) +{ +ICLASS: VPMOVSXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x21 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBD_YMMi32_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x21 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i8 +IFORM: VPMOVSXBD_YMMi32_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBQ (VPMOVSXBQ-128-1) +{ +ICLASS: VPMOVSXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x22 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBQ_XMMi64_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x22 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:wrd:i8 +IFORM: VPMOVSXBQ_XMMi64_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBQ (VPMOVSXBQ-256-1) +{ +ICLASS: VPMOVSXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x22 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBQ_YMMi64_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x22 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:i8 +IFORM: VPMOVSXBQ_YMMi64_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBW (VPMOVSXBW-128-1) +{ +ICLASS: VPMOVSXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x20 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBW_XMMi16_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x20 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i8 +IFORM: VPMOVSXBW_XMMi16_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBW (VPMOVSXBW-256-1) +{ +ICLASS: VPMOVSXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x20 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVSXBW_YMMi16_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x20 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i8 +IFORM: VPMOVSXBW_YMMi16_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXBW (VPMOVSXBW-512-1) +{ +ICLASS: VPMOVSXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x20 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i8 +IFORM: VPMOVSXBW_ZMMi16_MASKmskw_YMMi8_AVX512 +} + +{ +ICLASS: VPMOVSXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x20 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i8 +IFORM: VPMOVSXBW_ZMMi16_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVSXDQ (VPMOVSXDQ-128-1) +{ +ICLASS: VPMOVSXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VPMOVSXDQ_XMMi64_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VPMOVSXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x25 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i32 +IFORM: VPMOVSXDQ_XMMi64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPMOVSXDQ (VPMOVSXDQ-256-1) +{ +ICLASS: VPMOVSXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VPMOVSXDQ_YMMi64_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VPMOVSXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x25 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i32 +IFORM: VPMOVSXDQ_YMMi64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPMOVSXWD (VPMOVSXWD-128-1) +{ +ICLASS: VPMOVSXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVSXWD_XMMi32_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVSXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x23 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i16 +IFORM: VPMOVSXWD_XMMi32_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVSXWD (VPMOVSXWD-256-1) +{ +ICLASS: VPMOVSXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVSXWD_YMMi32_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVSXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x23 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i16 +IFORM: VPMOVSXWD_YMMi32_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVSXWQ (VPMOVSXWQ-128-1) +{ +ICLASS: VPMOVSXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x24 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVSXWQ_XMMi64_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVSXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x24 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:i16 +IFORM: VPMOVSXWQ_XMMi64_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVSXWQ (VPMOVSXWQ-256-1) +{ +ICLASS: VPMOVSXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x24 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVSXWQ_YMMi64_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVSXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x24 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i16 +IFORM: VPMOVSXWQ_YMMi64_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVUSDB (VPMOVUSDB-128-1) +{ +ICLASS: VPMOVUSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VPMOVUSDB_XMMu8_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVUSDB (VPMOVUSDB-128-2) +{ +ICLASS: VPMOVUSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x11 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:d:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPMOVUSDB_MEMu8_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVUSDB (VPMOVUSDB-256-1) +{ +ICLASS: VPMOVUSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VPMOVUSDB_XMMu8_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVUSDB (VPMOVUSDB-256-2) +{ +ICLASS: VPMOVUSDB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x11 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:q:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPMOVUSDB_MEMu8_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVUSDW (VPMOVUSDW-128-1) +{ +ICLASS: VPMOVUSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x13 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u32 +IFORM: VPMOVUSDW_XMMu16_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVUSDW (VPMOVUSDW-128-2) +{ +ICLASS: VPMOVUSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x13 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:u16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPMOVUSDW_MEMu16_MASKmskw_XMMu32_AVX512 +} + + +# EMITTING VPMOVUSDW (VPMOVUSDW-256-1) +{ +ICLASS: VPMOVUSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x13 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u32 +IFORM: VPMOVUSDW_XMMu16_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVUSDW (VPMOVUSDW-256-2) +{ +ICLASS: VPMOVUSDW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x13 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:u16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPMOVUSDW_MEMu16_MASKmskw_YMMu32_AVX512 +} + + +# EMITTING VPMOVUSQB (VPMOVUSQB-128-1) +{ +ICLASS: VPMOVUSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPMOVUSQB_XMMu8_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVUSQB (VPMOVUSQB-128-2) +{ +ICLASS: VPMOVUSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x12 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:wrd:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPMOVUSQB_MEMu8_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVUSQB (VPMOVUSQB-256-1) +{ +ICLASS: VPMOVUSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPMOVUSQB_XMMu8_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVUSQB (VPMOVUSQB-256-2) +{ +ICLASS: VPMOVUSQB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x12 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: MEM0:w:d:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPMOVUSQB_MEMu8_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVUSQD (VPMOVUSQD-128-1) +{ +ICLASS: VPMOVUSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPMOVUSQD_XMMu32_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVUSQD (VPMOVUSQD-128-2) +{ +ICLASS: VPMOVUSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x15 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:u32 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPMOVUSQD_MEMu32_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVUSQD (VPMOVUSQD-256-1) +{ +ICLASS: VPMOVUSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPMOVUSQD_XMMu32_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVUSQD (VPMOVUSQD-256-2) +{ +ICLASS: VPMOVUSQD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x15 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:u32 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPMOVUSQD_MEMu32_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVUSQW (VPMOVUSQW-128-1) +{ +ICLASS: VPMOVUSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u64 +IFORM: VPMOVUSQW_XMMu16_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVUSQW (VPMOVUSQW-128-2) +{ +ICLASS: VPMOVUSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x14 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:d:u16 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPMOVUSQW_MEMu16_MASKmskw_XMMu64_AVX512 +} + + +# EMITTING VPMOVUSQW (VPMOVUSQW-256-1) +{ +ICLASS: VPMOVUSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u64 +IFORM: VPMOVUSQW_XMMu16_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVUSQW (VPMOVUSQW-256-2) +{ +ICLASS: VPMOVUSQW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x14 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: MEM0:w:q:u16 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPMOVUSQW_MEMu16_MASKmskw_YMMu64_AVX512 +} + + +# EMITTING VPMOVUSWB (VPMOVUSWB-128-1) +{ +ICLASS: VPMOVUSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u16 +IFORM: VPMOVUSWB_XMMu8_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VPMOVUSWB (VPMOVUSWB-128-2) +{ +ICLASS: VPMOVUSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x10 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u16 +IFORM: VPMOVUSWB_MEMu8_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VPMOVUSWB (VPMOVUSWB-256-1) +{ +ICLASS: VPMOVUSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u16 +IFORM: VPMOVUSWB_XMMu8_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VPMOVUSWB (VPMOVUSWB-256-2) +{ +ICLASS: VPMOVUSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x10 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u16 +IFORM: VPMOVUSWB_MEMu8_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VPMOVUSWB (VPMOVUSWB-512-1) +{ +ICLASS: VPMOVUSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu16 +IFORM: VPMOVUSWB_YMMu8_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VPMOVUSWB (VPMOVUSWB-512-2) +{ +ICLASS: VPMOVUSWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x10 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu16 +IFORM: VPMOVUSWB_MEMu8_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VPMOVW2M (VPMOVW2M-128-1) +{ +ICLASS: VPMOVW2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x29 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=XMM_B3():r:dq:u16 +IFORM: VPMOVW2M_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VPMOVW2M (VPMOVW2M-256-1) +{ +ICLASS: VPMOVW2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x29 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=YMM_B3():r:qq:u16 +IFORM: VPMOVW2M_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VPMOVW2M (VPMOVW2M-512-1) +{ +ICLASS: VPMOVW2M +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E7NM +REAL_OPCODE: Y +PATTERN: EVV 0x29 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR ZEROING=0 MASK=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=ZMM_B3():r:zu16 +IFORM: VPMOVW2M_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VPMOVWB (VPMOVWB-128-1) +{ +ICLASS: VPMOVWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x30 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_R3():r:dq:u16 +IFORM: VPMOVWB_XMMu8_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VPMOVWB (VPMOVWB-128-2) +{ +ICLASS: VPMOVWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x30 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:q:u8 REG0=MASK1():r:mskw REG1=XMM_R3():r:dq:u16 +IFORM: VPMOVWB_MEMu8_MASKmskw_XMMu16_AVX512 +} + + +# EMITTING VPMOVWB (VPMOVWB-256-1) +{ +ICLASS: VPMOVWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x30 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=XMM_B3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_R3():r:qq:u16 +IFORM: VPMOVWB_XMMu8_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VPMOVWB (VPMOVWB-256-2) +{ +ICLASS: VPMOVWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x30 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:dq:u8 REG0=MASK1():r:mskw REG1=YMM_R3():r:qq:u16 +IFORM: VPMOVWB_MEMu8_MASKmskw_YMMu16_AVX512 +} + + +# EMITTING VPMOVWB (VPMOVWB-512-1) +{ +ICLASS: VPMOVWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x30 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR +OPERANDS: REG0=YMM_B3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_R3():r:zu16 +IFORM: VPMOVWB_YMMu8_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VPMOVWB (VPMOVWB-512-2) +{ +ICLASS: VPMOVWB +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E6NF +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x30 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 NOEVSR ZEROING=0 ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: MEM0:w:qq:u8 REG0=MASK1():r:mskw REG1=ZMM_R3():r:zu16 +IFORM: VPMOVWB_MEMu8_MASKmskw_ZMMu16_AVX512 +} + + +# EMITTING VPMOVZXBD (VPMOVZXBD-128-1) +{ +ICLASS: VPMOVZXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x31 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBD_XMMi32_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x31 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:i8 +IFORM: VPMOVZXBD_XMMi32_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBD (VPMOVZXBD-256-1) +{ +ICLASS: VPMOVZXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x31 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBD_YMMi32_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x31 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i8 +IFORM: VPMOVZXBD_YMMi32_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBQ (VPMOVZXBQ-128-1) +{ +ICLASS: VPMOVZXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x32 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBQ_XMMi64_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x32 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:wrd:i8 +IFORM: VPMOVZXBQ_XMMi64_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBQ (VPMOVZXBQ-256-1) +{ +ICLASS: VPMOVZXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x32 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBQ_YMMi64_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_EIGHTHMEM +PATTERN: EVV 0x32 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_EIGHTHMEM() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:i8 +IFORM: VPMOVZXBQ_YMMi64_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBW (VPMOVZXBW-128-1) +{ +ICLASS: VPMOVZXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x30 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBW_XMMi16_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x30 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i8 +IFORM: VPMOVZXBW_XMMi16_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBW (VPMOVZXBW-256-1) +{ +ICLASS: VPMOVZXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x30 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i8 +IFORM: VPMOVZXBW_YMMi16_MASKmskw_XMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x30 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i8 +IFORM: VPMOVZXBW_YMMi16_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXBW (VPMOVZXBW-512-1) +{ +ICLASS: VPMOVZXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x30 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:i8 +IFORM: VPMOVZXBW_ZMMi16_MASKmskw_YMMi8_AVX512 +} + +{ +ICLASS: VPMOVZXBW +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x30 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR ESIZE_8_BITS() NELEM_HALFMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:i8 +IFORM: VPMOVZXBW_ZMMi16_MASKmskw_MEMi8_AVX512 +} + + +# EMITTING VPMOVZXDQ (VPMOVZXDQ-128-1) +{ +ICLASS: VPMOVZXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x35 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VPMOVZXDQ_XMMi64_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VPMOVZXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x35 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i32 +IFORM: VPMOVZXDQ_XMMi64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPMOVZXDQ (VPMOVZXDQ-256-1) +{ +ICLASS: VPMOVZXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x35 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i32 +IFORM: VPMOVZXDQ_YMMi64_MASKmskw_XMMi32_AVX512 +} + +{ +ICLASS: VPMOVZXDQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x35 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i32 +IFORM: VPMOVZXDQ_YMMi64_MASKmskw_MEMi32_AVX512 +} + + +# EMITTING VPMOVZXWD (VPMOVZXWD-128-1) +{ +ICLASS: VPMOVZXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x33 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVZXWD_XMMi32_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVZXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x33 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=XMM_R3():w:dq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i16 +IFORM: VPMOVZXWD_XMMi32_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVZXWD (VPMOVZXWD-256-1) +{ +ICLASS: VPMOVZXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x33 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVZXWD_YMMi32_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVZXWD +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_HALFMEM +PATTERN: EVV 0x33 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_16_BITS() NELEM_HALFMEM() +OPERANDS: REG0=YMM_R3():w:qq:i32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:i16 +IFORM: VPMOVZXWD_YMMi32_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVZXWQ (VPMOVZXWQ-128-1) +{ +ICLASS: VPMOVZXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x34 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVZXWQ_XMMi64_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVZXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x34 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:d:i16 +IFORM: VPMOVZXWQ_XMMi64_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMOVZXWQ (VPMOVZXWQ-256-1) +{ +ICLASS: VPMOVZXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x34 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:i16 +IFORM: VPMOVZXWQ_YMMi64_MASKmskw_XMMi16_AVX512 +} + +{ +ICLASS: VPMOVZXWQ +CPL: 3 +CATEGORY: DATAXFER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E5 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_QUARTERMEM +PATTERN: EVV 0x34 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR ESIZE_16_BITS() NELEM_QUARTERMEM() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:q:i16 +IFORM: VPMOVZXWQ_YMMi64_MASKmskw_MEMi16_AVX512 +} + + +# EMITTING VPMULDQ (VPMULDQ-128-1) +{ +ICLASS: VPMULDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 REG3=XMM_B3():r:dq:i32 +IFORM: VPMULDQ_XMMi64_MASKmskw_XMMi32_XMMi32_AVX512 +} + +{ +ICLASS: VPMULDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION DOUBLE_WIDE_MEMOP MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x28 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMULDQ_XMMi64_MASKmskw_XMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMULDQ (VPMULDQ-256-1) +{ +ICLASS: VPMULDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x28 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 REG3=YMM_B3():r:qq:i32 +IFORM: VPMULDQ_YMMi64_MASKmskw_YMMi32_YMMi32_AVX512 +} + +{ +ICLASS: VPMULDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION DOUBLE_WIDE_MEMOP MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x28 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:i64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i32 MEM0:r:vv:i32:TXT=BCASTSTR +IFORM: VPMULDQ_YMMi64_MASKmskw_YMMi32_MEMi32_AVX512 +} + + +# EMITTING VPMULHRSW (VPMULHRSW-128-1) +{ +ICLASS: VPMULHRSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPMULHRSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPMULHRSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x0B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPMULHRSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMULHRSW (VPMULHRSW-256-1) +{ +ICLASS: VPMULHRSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPMULHRSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPMULHRSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x0B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPMULHRSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMULHRSW (VPMULHRSW-512-1) +{ +ICLASS: VPMULHRSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x0B V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPMULHRSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPMULHRSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x0B V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPMULHRSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPMULHUW (VPMULHUW-128-1) +{ +ICLASS: VPMULHUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPMULHUW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPMULHUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPMULHUW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULHUW (VPMULHUW-256-1) +{ +ICLASS: VPMULHUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPMULHUW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPMULHUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPMULHUW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULHUW (VPMULHUW-512-1) +{ +ICLASS: VPMULHUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPMULHUW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPMULHUW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPMULHUW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULHW (VPMULHW-128-1) +{ +ICLASS: VPMULHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPMULHW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPMULHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPMULHW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULHW (VPMULHW-256-1) +{ +ICLASS: VPMULHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPMULHW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPMULHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPMULHW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULHW (VPMULHW-512-1) +{ +ICLASS: VPMULHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPMULHW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPMULHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPMULHW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULLD (VPMULLD-128-1) +{ +ICLASS: VPMULLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x40 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPMULLD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPMULLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x40 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMULLD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMULLD (VPMULLD-256-1) +{ +ICLASS: VPMULLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x40 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPMULLD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPMULLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x40 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMULLD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMULLQ (VPMULLQ-128-1) +{ +ICLASS: VPMULLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x40 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPMULLQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPMULLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x40 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMULLQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMULLQ (VPMULLQ-256-1) +{ +ICLASS: VPMULLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x40 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPMULLQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPMULLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x40 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMULLQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMULLQ (VPMULLQ-512-1) +{ +ICLASS: VPMULLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x40 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPMULLQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPMULLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x40 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMULLQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMULLW (VPMULLW-128-1) +{ +ICLASS: VPMULLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPMULLW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPMULLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPMULLW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULLW (VPMULLW-256-1) +{ +ICLASS: VPMULLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPMULLW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPMULLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPMULLW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULLW (VPMULLW-512-1) +{ +ICLASS: VPMULLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD5 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPMULLW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPMULLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD5 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPMULLW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPMULUDQ (VPMULUDQ-128-1) +{ +ICLASS: VPMULUDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPMULUDQ_XMMu64_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPMULUDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION DOUBLE_WIDE_MEMOP MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xF4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMULUDQ_XMMu64_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPMULUDQ (VPMULUDQ-256-1) +{ +ICLASS: VPMULUDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF4 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPMULUDQ_YMMu64_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPMULUDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION DOUBLE_WIDE_MEMOP MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xF4 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPMULUDQ_YMMu64_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPORD (VPORD-128-1) +{ +ICLASS: VPORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPORD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPORD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPORD (VPORD-256-1) +{ +ICLASS: VPORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPORD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPORD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPORQ (VPORQ-128-1) +{ +ICLASS: VPORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPORQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPORQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPORQ (VPORQ-256-1) +{ +ICLASS: VPORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPORQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPORQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPROLD (VPROLD-128-1) +{ +ICLASS: VPROLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b001] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPROLD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPROLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPROLD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPROLD (VPROLD-256-1) +{ +ICLASS: VPROLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b001] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPROLD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPROLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPROLD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPROLQ (VPROLQ-128-1) +{ +ICLASS: VPROLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b001] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPROLQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPROLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPROLQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPROLQ (VPROLQ-256-1) +{ +ICLASS: VPROLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b001] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPROLQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPROLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPROLQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPROLVD (VPROLVD-128-1) +{ +ICLASS: VPROLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPROLVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPROLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPROLVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPROLVD (VPROLVD-256-1) +{ +ICLASS: VPROLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPROLVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPROLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPROLVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPROLVQ (VPROLVQ-128-1) +{ +ICLASS: VPROLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPROLVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPROLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPROLVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPROLVQ (VPROLVQ-256-1) +{ +ICLASS: VPROLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPROLVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPROLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPROLVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPRORD (VPRORD-128-1) +{ +ICLASS: VPRORD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b000] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPRORD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPRORD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPRORD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPRORD (VPRORD-256-1) +{ +ICLASS: VPRORD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b000] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPRORD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPRORD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPRORD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPRORQ (VPRORQ-128-1) +{ +ICLASS: VPRORQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b000] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPRORQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPRORQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPRORQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPRORQ (VPRORQ-256-1) +{ +ICLASS: VPRORQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b000] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPRORQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPRORQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b000] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPRORQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPRORVD (VPRORVD-128-1) +{ +ICLASS: VPRORVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPRORVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPRORVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPRORVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPRORVD (VPRORVD-256-1) +{ +ICLASS: VPRORVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPRORVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPRORVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPRORVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPRORVQ (VPRORVQ-128-1) +{ +ICLASS: VPRORVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPRORVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPRORVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPRORVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPRORVQ (VPRORVQ-256-1) +{ +ICLASS: VPRORVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPRORVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPRORVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPRORVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSADBW (VPSADBW-128-1) +{ +ICLASS: VPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0xF6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 ZEROING=0 MASK=0 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=XMM_N3():r:dq:u8 REG2=XMM_B3():r:dq:u8 +IFORM: VPSADBW_XMMu16_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0xF6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 MASK=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPSADBW_XMMu16_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSADBW (VPSADBW-256-1) +{ +ICLASS: VPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0xF6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 ZEROING=0 MASK=0 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=YMM_N3():r:qq:u8 REG2=YMM_B3():r:qq:u8 +IFORM: VPSADBW_YMMu16_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0xF6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 MASK=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPSADBW_YMMu16_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSADBW (VPSADBW-512-1) +{ +ICLASS: VPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0xF6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 ZEROING=0 MASK=0 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=ZMM_N3():r:zu8 REG2=ZMM_B3():r:zu8 +IFORM: VPSADBW_ZMMu16_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPSADBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0xF6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 MASK=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPSADBW_ZMMu16_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSCATTERDD (VPSCATTERDD-128-1) +{ +ICLASS: VPSCATTERDD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA0 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:u32 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPSCATTERDD_MEMu32_MASKmskw_XMMu32_AVX512_VL128 +} + + +# EMITTING VPSCATTERDD (VPSCATTERDD-256-1) +{ +ICLASS: VPSCATTERDD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA0 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:u32 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:u32 +IFORM: VPSCATTERDD_MEMu32_MASKmskw_YMMu32_AVX512_VL256 +} + + +# EMITTING VPSCATTERDQ (VPSCATTERDQ-128-1) +{ +ICLASS: VPSCATTERDQ +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA0 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:u64 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPSCATTERDQ_MEMu64_MASKmskw_XMMu64_AVX512_VL128 +} + + +# EMITTING VPSCATTERDQ (VPSCATTERDQ-256-1) +{ +ICLASS: VPSCATTERDQ +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA0 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:u64 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPSCATTERDQ_MEMu64_MASKmskw_YMMu64_AVX512_VL256 +} + + +# EMITTING VPSCATTERQD (VPSCATTERQD-128-1) +{ +ICLASS: VPSCATTERQD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA1 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:q:u32 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPSCATTERQD_MEMu32_MASKmskw_XMMu32_AVX512_VL128 +} + + +# EMITTING VPSCATTERQD (VPSCATTERQD-256-1) +{ +ICLASS: VPSCATTERQD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA1 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:u32 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:u32 +IFORM: VPSCATTERQD_MEMu32_MASKmskw_XMMu32_AVX512_VL256 +} + + +# EMITTING VPSCATTERQQ (VPSCATTERQQ-128-1) +{ +ICLASS: VPSCATTERQQ +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA1 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:u64 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:u64 +IFORM: VPSCATTERQQ_MEMu64_MASKmskw_XMMu64_AVX512_VL128 +} + + +# EMITTING VPSCATTERQQ (VPSCATTERQQ-256-1) +{ +ICLASS: VPSCATTERQQ +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA1 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:u64 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:u64 +IFORM: VPSCATTERQQ_MEMu64_MASKmskw_YMMu64_AVX512_VL256 +} + + +# EMITTING VPSHUFB (VPSHUFB-128-1) +{ +ICLASS: VPSHUFB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x00 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPSHUFB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPSHUFB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x00 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPSHUFB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSHUFB (VPSHUFB-256-1) +{ +ICLASS: VPSHUFB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x00 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPSHUFB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPSHUFB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x00 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPSHUFB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSHUFB (VPSHUFB-512-1) +{ +ICLASS: VPSHUFB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x00 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPSHUFB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPSHUFB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x00 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPSHUFB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSHUFD (VPSHUFD-128-1) +{ +ICLASS: VPSHUFD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPSHUFD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x70 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSHUFD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSHUFD (VPSHUFD-256-1) +{ +ICLASS: VPSHUFD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPSHUFD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x70 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSHUFD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSHUFHW (VPSHUFHW-128-1) +{ +ICLASS: VPSHUFHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPSHUFHW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x70 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u16 IMM0:r:b +IFORM: VPSHUFHW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSHUFHW (VPSHUFHW-256-1) +{ +ICLASS: VPSHUFHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u16 IMM0:r:b +IFORM: VPSHUFHW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x70 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u16 IMM0:r:b +IFORM: VPSHUFHW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSHUFHW (VPSHUFHW-512-1) +{ +ICLASS: VPSHUFHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 VF3 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu16 IMM0:r:b +IFORM: VPSHUFHW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFHW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x70 VF3 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u16 IMM0:r:b +IFORM: VPSHUFHW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSHUFLW (VPSHUFLW-128-1) +{ +ICLASS: VPSHUFLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPSHUFLW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x70 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 NOEVSR UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u16 IMM0:r:b +IFORM: VPSHUFLW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSHUFLW (VPSHUFLW-256-1) +{ +ICLASS: VPSHUFLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u16 IMM0:r:b +IFORM: VPSHUFLW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x70 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 NOEVSR UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u16 IMM0:r:b +IFORM: VPSHUFLW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSHUFLW (VPSHUFLW-512-1) +{ +ICLASS: VPSHUFLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x70 VF2 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu16 IMM0:r:b +IFORM: VPSHUFLW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSHUFLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x70 VF2 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 NOEVSR UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u16 IMM0:r:b +IFORM: VPSHUFLW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSLLD (VPSLLD-128-1) +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSLLD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:dq:u32 +IFORM: VPSLLD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSLLD (VPSLLD-128-3) +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPSLLD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSLLD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSLLD (VPSLLD-256-1) +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSLLD_YMMu32_MASKmskw_YMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:dq:u32 +IFORM: VPSLLD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSLLD (VPSLLD-256-3) +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPSLLD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSLLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSLLD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSLLDQ (VPSLLDQ-128-2) +{ +ICLASS: VPSLLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b111] RM[nnn] VL128 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u8 REG1=XMM_B3():r:dq:u8 IMM0:r:b +IFORM: VPSLLDQ_XMMu8_XMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPSLLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b111] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_N3():w:dq:u8 MEM0:r:dq:u8 IMM0:r:b +IFORM: VPSLLDQ_XMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPSLLDQ (VPSLLDQ-256-2) +{ +ICLASS: VPSLLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b111] RM[nnn] VL256 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u8 REG1=YMM_B3():r:qq:u8 IMM0:r:b +IFORM: VPSLLDQ_YMMu8_YMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPSLLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b111] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_N3():w:qq:u8 MEM0:r:qq:u8 IMM0:r:b +IFORM: VPSLLDQ_YMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPSLLDQ (VPSLLDQ-512-1) +{ +ICLASS: VPSLLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b111] RM[nnn] VL512 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu8 REG1=ZMM_B3():r:zu8 IMM0:r:b +IFORM: VPSLLDQ_ZMMu8_ZMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPSLLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b111] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_N3():w:zu8 MEM0:r:zd:u8 IMM0:r:b +IFORM: VPSLLDQ_ZMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPSLLQ (VPSLLQ-128-1) +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSLLQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:dq:u64 +IFORM: VPSLLQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSLLQ (VPSLLQ-128-3) +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPSLLQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSLLQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSLLQ (VPSLLQ-256-1) +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSLLQ_YMMu64_MASKmskw_YMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:dq:u64 +IFORM: VPSLLQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSLLQ (VPSLLQ-256-3) +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPSLLQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSLLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSLLQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSLLVD (VPSLLVD-128-1) +{ +ICLASS: VPSLLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x47 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSLLVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSLLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x47 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSLLVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSLLVD (VPSLLVD-256-1) +{ +ICLASS: VPSLLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x47 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPSLLVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPSLLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x47 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSLLVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSLLVQ (VPSLLVQ-128-1) +{ +ICLASS: VPSLLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x47 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSLLVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSLLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x47 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSLLVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSLLVQ (VPSLLVQ-256-1) +{ +ICLASS: VPSLLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x47 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPSLLVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPSLLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x47 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSLLVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSLLVW (VPSLLVW-128-1) +{ +ICLASS: VPSLLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSLLVW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSLLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x12 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSLLVW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSLLVW (VPSLLVW-256-1) +{ +ICLASS: VPSLLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPSLLVW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPSLLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x12 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPSLLVW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSLLVW (VPSLLVW-512-1) +{ +ICLASS: VPSLLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x12 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPSLLVW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPSLLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x12 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPSLLVW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSLLW (VPSLLW-128-1) +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSLLW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSLLW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSLLW (VPSLLW-128-3) +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL128 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPSLLW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 MODRM() VL128 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_N3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u16 IMM0:r:b +IFORM: VPSLLW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSLLW (VPSLLW-256-1) +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSLLW_YMMu16_MASKmskw_YMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:dq:u16 +IFORM: VPSLLW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSLLW (VPSLLW-256-3) +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL256 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u16 IMM0:r:b +IFORM: VPSLLW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 MODRM() VL256 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_N3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u16 IMM0:r:b +IFORM: VPSLLW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSLLW (VPSLLW-512-1) +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSLLW_ZMMu16_MASKmskw_ZMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xF1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:dq:u16 +IFORM: VPSLLW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSLLW (VPSLLW-512-2) +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b110] RM[nnn] VL512 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu16 IMM0:r:b +IFORM: VPSLLW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSLLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b110] RM[nnn] BCRC=0 MODRM() VL512 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_N3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u16 IMM0:r:b +IFORM: VPSLLW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSRAD (VPSRAD-128-1) +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRAD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:dq:u32 +IFORM: VPSRAD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRAD (VPSRAD-128-3) +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPSRAD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRAD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSRAD (VPSRAD-256-1) +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRAD_YMMu32_MASKmskw_YMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:dq:u32 +IFORM: VPSRAD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRAD (VPSRAD-256-3) +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPSRAD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSRAD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRAD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSRAQ (VPSRAQ-128-1) +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRAQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:dq:u64 +IFORM: VPSRAQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRAQ (VPSRAQ-128-2) +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPSRAQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRAQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSRAQ (VPSRAQ-256-1) +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRAQ_YMMu64_MASKmskw_YMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:dq:u64 +IFORM: VPSRAQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRAQ (VPSRAQ-256-2) +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPSRAQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSRAQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRAQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSRAVD (VPSRAVD-128-1) +{ +ICLASS: VPSRAVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x46 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRAVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRAVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x46 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSRAVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRAVD (VPSRAVD-256-1) +{ +ICLASS: VPSRAVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x46 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPSRAVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPSRAVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x46 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSRAVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRAVQ (VPSRAVQ-128-1) +{ +ICLASS: VPSRAVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x46 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRAVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRAVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x46 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSRAVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRAVQ (VPSRAVQ-256-1) +{ +ICLASS: VPSRAVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x46 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPSRAVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPSRAVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x46 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSRAVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRAVW (VPSRAVW-128-1) +{ +ICLASS: VPSRAVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRAVW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRAVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSRAVW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRAVW (VPSRAVW-256-1) +{ +ICLASS: VPSRAVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPSRAVW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPSRAVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPSRAVW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRAVW (VPSRAVW-512-1) +{ +ICLASS: VPSRAVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x11 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPSRAVW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPSRAVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x11 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPSRAVW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRAW (VPSRAW-128-1) +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRAW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSRAW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRAW (VPSRAW-128-2) +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL128 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPSRAW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] BCRC=0 MODRM() VL128 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_N3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u16 IMM0:r:b +IFORM: VPSRAW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSRAW (VPSRAW-256-1) +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRAW_YMMu16_MASKmskw_YMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:dq:u16 +IFORM: VPSRAW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRAW (VPSRAW-256-2) +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL256 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u16 IMM0:r:b +IFORM: VPSRAW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] BCRC=0 MODRM() VL256 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_N3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u16 IMM0:r:b +IFORM: VPSRAW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSRAW (VPSRAW-512-1) +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRAW_ZMMu16_MASKmskw_ZMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xE1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:dq:u16 +IFORM: VPSRAW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRAW (VPSRAW-512-2) +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b100] RM[nnn] VL512 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu16 IMM0:r:b +IFORM: VPSRAW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSRAW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b100] RM[nnn] BCRC=0 MODRM() VL512 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_N3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u16 IMM0:r:b +IFORM: VPSRAW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSRLD (VPSRLD-128-1) +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRLD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:dq:u32 +IFORM: VPSRLD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRLD (VPSRLD-128-2) +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPSRLD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRLD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSRLD (VPSRLD-256-1) +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD2 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRLD_YMMu32_MASKmskw_YMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD2 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_32_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:dq:u32 +IFORM: VPSRLD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRLD (VPSRLD-256-2) +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x72 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPSRLD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPSRLD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x72 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRLD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPSRLDQ (VPSRLDQ-128-1) +{ +ICLASS: VPSRLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b011] RM[nnn] VL128 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u8 REG1=XMM_B3():r:dq:u8 IMM0:r:b +IFORM: VPSRLDQ_XMMu8_XMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPSRLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b011] RM[nnn] BCRC=0 MODRM() VL128 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_N3():w:dq:u8 MEM0:r:dq:u8 IMM0:r:b +IFORM: VPSRLDQ_XMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPSRLDQ (VPSRLDQ-256-1) +{ +ICLASS: VPSRLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b011] RM[nnn] VL256 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u8 REG1=YMM_B3():r:qq:u8 IMM0:r:b +IFORM: VPSRLDQ_YMMu8_YMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPSRLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b011] RM[nnn] BCRC=0 MODRM() VL256 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_N3():w:qq:u8 MEM0:r:qq:u8 IMM0:r:b +IFORM: VPSRLDQ_YMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPSRLDQ (VPSRLDQ-512-1) +{ +ICLASS: VPSRLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b011] RM[nnn] VL512 ZEROING=0 MASK=0 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu8 REG1=ZMM_B3():r:zu8 IMM0:r:b +IFORM: VPSRLDQ_ZMMu8_ZMMu8_IMM8_AVX512 +} + +{ +ICLASS: VPSRLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: DISP8_FULLMEM +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b011] RM[nnn] BCRC=0 MODRM() VL512 ZEROING=0 MASK=0 UIMM8() ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_N3():w:zu8 MEM0:r:zd:u8 IMM0:r:b +IFORM: VPSRLDQ_ZMMu8_MEMu8_IMM8_AVX512 +} + + +# EMITTING VPSRLQ (VPSRLQ-128-1) +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRLQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:dq:u64 +IFORM: VPSRLQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRLQ (VPSRLQ-128-2) +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPSRLQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_N3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRLQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSRLQ (VPSRLQ-256-1) +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD3 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRLQ_YMMu64_MASKmskw_YMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD3 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_64_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:dq:u64 +IFORM: VPSRLQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRLQ (VPSRLQ-256-2) +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x73 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPSRLQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPSRLQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x73 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_N3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPSRLQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPSRLVD (VPSRLVD-128-1) +{ +ICLASS: VPSRLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x45 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSRLVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSRLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x45 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSRLVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRLVD (VPSRLVD-256-1) +{ +ICLASS: VPSRLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x45 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPSRLVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPSRLVD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x45 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSRLVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSRLVQ (VPSRLVQ-128-1) +{ +ICLASS: VPSRLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x45 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSRLVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSRLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x45 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSRLVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRLVQ (VPSRLVQ-256-1) +{ +ICLASS: VPSRLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x45 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPSRLVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPSRLVQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x45 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSRLVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSRLVW (VPSRLVW-128-1) +{ +ICLASS: VPSRLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRLVW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSRLVW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRLVW (VPSRLVW-256-1) +{ +ICLASS: VPSRLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPSRLVW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPSRLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPSRLVW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRLVW (VPSRLVW-512-1) +{ +ICLASS: VPSRLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x10 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPSRLVW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPSRLVW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x10 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPSRLVW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRLW (VPSRLW-128-1) +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRLW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSRLW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRLW (VPSRLW-128-2) +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL128 UIMM8() +OPERANDS: REG0=XMM_N3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:u16 IMM0:r:b +IFORM: VPSRLW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 MODRM() VL128 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_N3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:dq:u16 IMM0:r:b +IFORM: VPSRLW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSRLW (VPSRLW-256-1) +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRLW_YMMu16_MASKmskw_YMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:dq:u16 +IFORM: VPSRLW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRLW (VPSRLW-256-2) +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL256 UIMM8() +OPERANDS: REG0=YMM_N3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:u16 IMM0:r:b +IFORM: VPSRLW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 MODRM() VL256 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_N3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:qq:u16 IMM0:r:b +IFORM: VPSRLW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSRLW (VPSRLW-512-1) +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD1 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSRLW_ZMMu16_MASKmskw_ZMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_MEM128 +PATTERN: EVV 0xD1 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_MEM128() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:dq:u16 +IFORM: VPSRLW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSRLW (VPSRLW-512-2) +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x71 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[0b010] RM[nnn] VL512 UIMM8() +OPERANDS: REG0=ZMM_N3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zu16 IMM0:r:b +IFORM: VPSRLW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512 +} + +{ +ICLASS: VPSRLW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x71 V66 V0F MOD[mm] MOD!=3 REG[0b010] RM[nnn] BCRC=0 MODRM() VL512 UIMM8() ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_N3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:zd:u16 IMM0:r:b +IFORM: VPSRLW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512 +} + + +# EMITTING VPSUBB (VPSUBB-128-1) +{ +ICLASS: VPSUBB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPSUBB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPSUBB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPSUBB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSUBB (VPSUBB-256-1) +{ +ICLASS: VPSUBB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPSUBB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPSUBB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPSUBB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSUBB (VPSUBB-512-1) +{ +ICLASS: VPSUBB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPSUBB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPSUBB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPSUBB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSUBD (VPSUBD-128-1) +{ +ICLASS: VPSUBD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPSUBD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPSUBD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSUBD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSUBD (VPSUBD-256-1) +{ +ICLASS: VPSUBD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFA V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPSUBD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPSUBD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFA V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPSUBD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPSUBQ (VPSUBQ-128-1) +{ +ICLASS: VPSUBQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPSUBQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPSUBQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSUBQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSUBQ (VPSUBQ-256-1) +{ +ICLASS: VPSUBQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xFB V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPSUBQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPSUBQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xFB V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPSUBQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPSUBSB (VPSUBSB-128-1) +{ +ICLASS: VPSUBSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 REG3=XMM_B3():r:dq:i8 +IFORM: VPSUBSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512 +} + +{ +ICLASS: VPSUBSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i8 MEM0:r:dq:i8 +IFORM: VPSUBSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512 +} + + +# EMITTING VPSUBSB (VPSUBSB-256-1) +{ +ICLASS: VPSUBSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 REG3=YMM_B3():r:qq:i8 +IFORM: VPSUBSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512 +} + +{ +ICLASS: VPSUBSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i8 MEM0:r:qq:i8 +IFORM: VPSUBSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512 +} + + +# EMITTING VPSUBSB (VPSUBSB-512-1) +{ +ICLASS: VPSUBSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 REG3=ZMM_B3():r:zi8 +IFORM: VPSUBSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512 +} + +{ +ICLASS: VPSUBSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi8 MEM0:r:zd:i8 +IFORM: VPSUBSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512 +} + + +# EMITTING VPSUBSW (VPSUBSW-128-1) +{ +ICLASS: VPSUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 REG3=XMM_B3():r:dq:i16 +IFORM: VPSUBSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512 +} + +{ +ICLASS: VPSUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:i16 MEM0:r:dq:i16 +IFORM: VPSUBSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512 +} + + +# EMITTING VPSUBSW (VPSUBSW-256-1) +{ +ICLASS: VPSUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 REG3=YMM_B3():r:qq:i16 +IFORM: VPSUBSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512 +} + +{ +ICLASS: VPSUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:i16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:i16 MEM0:r:qq:i16 +IFORM: VPSUBSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512 +} + + +# EMITTING VPSUBSW (VPSUBSW-512-1) +{ +ICLASS: VPSUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xE9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 REG3=ZMM_B3():r:zi16 +IFORM: VPSUBSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512 +} + +{ +ICLASS: VPSUBSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xE9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zi16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zi16 MEM0:r:zd:i16 +IFORM: VPSUBSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512 +} + + +# EMITTING VPSUBUSB (VPSUBUSB-128-1) +{ +ICLASS: VPSUBUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPSUBUSB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPSUBUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPSUBUSB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSUBUSB (VPSUBUSB-256-1) +{ +ICLASS: VPSUBUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPSUBUSB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPSUBUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPSUBUSB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSUBUSB (VPSUBUSB-512-1) +{ +ICLASS: VPSUBUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD8 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPSUBUSB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPSUBUSB +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD8 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPSUBUSB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPSUBUSW (VPSUBUSW-128-1) +{ +ICLASS: VPSUBUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSUBUSW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSUBUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSUBUSW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSUBUSW (VPSUBUSW-256-1) +{ +ICLASS: VPSUBUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPSUBUSW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPSUBUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPSUBUSW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSUBUSW (VPSUBUSW-512-1) +{ +ICLASS: VPSUBUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xD9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPSUBUSW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPSUBUSW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xD9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPSUBUSW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSUBW (VPSUBW-128-1) +{ +ICLASS: VPSUBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPSUBW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPSUBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPSUBW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSUBW (VPSUBW-256-1) +{ +ICLASS: VPSUBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPSUBW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPSUBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPSUBW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPSUBW (VPSUBW-512-1) +{ +ICLASS: VPSUBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xF9 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPSUBW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPSUBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0xF9 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPSUBW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPTERNLOGD (VPTERNLOGD-128-1) +{ +ICLASS: VPTERNLOGD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 IMM0:r:b +IFORM: VPTERNLOGD_XMMu32_MASKmskw_XMMu32_XMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPTERNLOGD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x25 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPTERNLOGD_XMMu32_MASKmskw_XMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPTERNLOGD (VPTERNLOGD-256-1) +{ +ICLASS: VPTERNLOGD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():rw:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VPTERNLOGD_YMMu32_MASKmskw_YMMu32_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VPTERNLOGD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x25 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VPTERNLOGD_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VPTERNLOGQ (VPTERNLOGQ-128-1) +{ +ICLASS: VPTERNLOGQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 IMM0:r:b +IFORM: VPTERNLOGQ_XMMu64_MASKmskw_XMMu64_XMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPTERNLOGQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x25 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPTERNLOGQ_XMMu64_MASKmskw_XMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPTERNLOGQ (VPTERNLOGQ-256-1) +{ +ICLASS: VPTERNLOGQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x25 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VPTERNLOGQ_YMMu64_MASKmskw_YMMu64_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VPTERNLOGQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x25 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VPTERNLOGQ_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VPTESTMB (VPTESTMB-128-1) +{ +ICLASS: VPTESTMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPTESTMB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPTESTMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPTESTMB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPTESTMB (VPTESTMB-256-1) +{ +ICLASS: VPTESTMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPTESTMB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPTESTMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPTESTMB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPTESTMB (VPTESTMB-512-1) +{ +ICLASS: VPTESTMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPTESTMB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPTESTMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPTESTMB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPTESTMD (VPTESTMD-128-1) +{ +ICLASS: VPTESTMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPTESTMD_MASKmskw_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPTESTMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPTESTMD_MASKmskw_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPTESTMD (VPTESTMD-256-1) +{ +ICLASS: VPTESTMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPTESTMD_MASKmskw_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPTESTMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPTESTMD_MASKmskw_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPTESTMQ (VPTESTMQ-128-1) +{ +ICLASS: VPTESTMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPTESTMQ_MASKmskw_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPTESTMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPTESTMQ_MASKmskw_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPTESTMQ (VPTESTMQ-256-1) +{ +ICLASS: VPTESTMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPTESTMQ_MASKmskw_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPTESTMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPTESTMQ_MASKmskw_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPTESTMW (VPTESTMW-128-1) +{ +ICLASS: VPTESTMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPTESTMW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPTESTMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPTESTMW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPTESTMW (VPTESTMW-256-1) +{ +ICLASS: VPTESTMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPTESTMW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPTESTMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPTESTMW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPTESTMW (VPTESTMW-512-1) +{ +ICLASS: VPTESTMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPTESTMW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPTESTMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPTESTMW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPTESTNMB (VPTESTNMB-128-1) +{ +ICLASS: VPTESTNMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPTESTNMB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPTESTNMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPTESTNMB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPTESTNMB (VPTESTNMB-256-1) +{ +ICLASS: VPTESTNMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPTESTNMB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPTESTNMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPTESTNMB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPTESTNMB (VPTESTNMB-512-1) +{ +ICLASS: VPTESTNMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPTESTNMB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPTESTNMB +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ZEROING=0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPTESTNMB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPTESTNMD (VPTESTNMD-128-1) +{ +ICLASS: VPTESTNMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPTESTNMD_MASKmskw_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPTESTNMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPTESTNMD_MASKmskw_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPTESTNMD (VPTESTNMD-256-1) +{ +ICLASS: VPTESTNMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPTESTNMD_MASKmskw_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPTESTNMD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ZEROING=0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPTESTNMD_MASKmskw_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPTESTNMQ (VPTESTNMQ-128-1) +{ +ICLASS: VPTESTNMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPTESTNMQ_MASKmskw_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPTESTNMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPTESTNMQ_MASKmskw_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPTESTNMQ (VPTESTNMQ-256-1) +{ +ICLASS: VPTESTNMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x27 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPTESTNMQ_MASKmskw_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPTESTNMQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x27 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ZEROING=0 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPTESTNMQ_MASKmskw_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPTESTNMW (VPTESTNMW-128-1) +{ +ICLASS: VPTESTNMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPTESTNMW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPTESTNMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W1 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPTESTNMW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPTESTNMW (VPTESTNMW-256-1) +{ +ICLASS: VPTESTNMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPTESTNMW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPTESTNMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W1 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPTESTNMW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPTESTNMW (VPTESTNMW-512-1) +{ +ICLASS: VPTESTNMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x26 VF3 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 ZEROING=0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPTESTNMW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPTESTNMW +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x26 VF3 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W1 ZEROING=0 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK1():r:mskw REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPTESTNMW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPUNPCKHBW (VPUNPCKHBW-128-1) +{ +ICLASS: VPUNPCKHBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x68 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPUNPCKHBW_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPUNPCKHBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x68 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPUNPCKHBW_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPUNPCKHBW (VPUNPCKHBW-256-1) +{ +ICLASS: VPUNPCKHBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x68 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPUNPCKHBW_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPUNPCKHBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x68 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPUNPCKHBW_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPUNPCKHBW (VPUNPCKHBW-512-1) +{ +ICLASS: VPUNPCKHBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x68 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPUNPCKHBW_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPUNPCKHBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x68 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPUNPCKHBW_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPUNPCKHDQ (VPUNPCKHDQ-128-1) +{ +ICLASS: VPUNPCKHDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPUNPCKHDQ_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPUNPCKHDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPUNPCKHDQ_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPUNPCKHDQ (VPUNPCKHDQ-256-1) +{ +ICLASS: VPUNPCKHDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6A V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPUNPCKHDQ_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPUNPCKHDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6A V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPUNPCKHDQ_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPUNPCKHQDQ (VPUNPCKHQDQ-128-1) +{ +ICLASS: VPUNPCKHQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6D V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPUNPCKHQDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPUNPCKHQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6D V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPUNPCKHQDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPUNPCKHQDQ (VPUNPCKHQDQ-256-1) +{ +ICLASS: VPUNPCKHQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6D V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPUNPCKHQDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPUNPCKHQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6D V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPUNPCKHQDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPUNPCKHWD (VPUNPCKHWD-128-1) +{ +ICLASS: VPUNPCKHWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x69 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPUNPCKHWD_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPUNPCKHWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x69 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPUNPCKHWD_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPUNPCKHWD (VPUNPCKHWD-256-1) +{ +ICLASS: VPUNPCKHWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x69 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPUNPCKHWD_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPUNPCKHWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x69 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPUNPCKHWD_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPUNPCKHWD (VPUNPCKHWD-512-1) +{ +ICLASS: VPUNPCKHWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x69 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPUNPCKHWD_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPUNPCKHWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x69 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPUNPCKHWD_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPUNPCKLBW (VPUNPCKLBW-128-1) +{ +ICLASS: VPUNPCKLBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x60 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPUNPCKLBW_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPUNPCKLBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x60 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPUNPCKLBW_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPUNPCKLBW (VPUNPCKLBW-256-1) +{ +ICLASS: VPUNPCKLBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x60 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPUNPCKLBW_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPUNPCKLBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x60 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPUNPCKLBW_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPUNPCKLBW (VPUNPCKLBW-512-1) +{ +ICLASS: VPUNPCKLBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x60 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPUNPCKLBW_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPUNPCKLBW +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x60 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPUNPCKLBW_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPUNPCKLDQ (VPUNPCKLDQ-128-1) +{ +ICLASS: VPUNPCKLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x62 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPUNPCKLDQ_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPUNPCKLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x62 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPUNPCKLDQ_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPUNPCKLDQ (VPUNPCKLDQ-256-1) +{ +ICLASS: VPUNPCKLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x62 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPUNPCKLDQ_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPUNPCKLDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x62 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPUNPCKLDQ_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPUNPCKLQDQ (VPUNPCKLQDQ-128-1) +{ +ICLASS: VPUNPCKLQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6C V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPUNPCKLQDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPUNPCKLQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6C V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPUNPCKLQDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPUNPCKLQDQ (VPUNPCKLQDQ-256-1) +{ +ICLASS: VPUNPCKLQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x6C V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPUNPCKLQDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPUNPCKLQDQ +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x6C V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPUNPCKLQDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPUNPCKLWD (VPUNPCKLWD-128-1) +{ +ICLASS: VPUNPCKLWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x61 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 REG3=XMM_B3():r:dq:u16 +IFORM: VPUNPCKLWD_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512 +} + +{ +ICLASS: VPUNPCKLWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x61 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u16 MEM0:r:dq:u16 +IFORM: VPUNPCKLWD_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512 +} + + +# EMITTING VPUNPCKLWD (VPUNPCKLWD-256-1) +{ +ICLASS: VPUNPCKLWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x61 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 REG3=YMM_B3():r:qq:u16 +IFORM: VPUNPCKLWD_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512 +} + +{ +ICLASS: VPUNPCKLWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x61 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u16 MEM0:r:qq:u16 +IFORM: VPUNPCKLWD_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512 +} + + +# EMITTING VPUNPCKLWD (VPUNPCKLWD-512-1) +{ +ICLASS: VPUNPCKLWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x61 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 REG3=ZMM_B3():r:zu16 +IFORM: VPUNPCKLWD_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512 +} + +{ +ICLASS: VPUNPCKLWD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512BW_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x61 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 ESIZE_16_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu16 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu16 MEM0:r:zd:u16 +IFORM: VPUNPCKLWD_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512 +} + + +# EMITTING VPXORD (VPXORD-128-1) +{ +ICLASS: VPXORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 REG3=XMM_B3():r:dq:u32 +IFORM: VPXORD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512 +} + +{ +ICLASS: VPXORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPXORD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512 +} + + +# EMITTING VPXORD (VPXORD-256-1) +{ +ICLASS: VPXORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 +IFORM: VPXORD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512 +} + +{ +ICLASS: VPXORD +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR +IFORM: VPXORD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512 +} + + +# EMITTING VPXORQ (VPXORQ-128-1) +{ +ICLASS: VPXORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPXORQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPXORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPXORQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPXORQ (VPXORQ-256-1) +{ +ICLASS: VPXORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xEF V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPXORQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPXORQ +CPL: 3 +CATEGORY: LOGICAL +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xEF V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPXORQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VRANGEPD (VRANGEPD-128-1) +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VRANGEPD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x50 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VRANGEPD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRANGEPD (VRANGEPD-256-1) +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VRANGEPD_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x50 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VRANGEPD_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRANGEPD (VRANGEPD-512-1) +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VRANGEPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VRANGEPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x50 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VRANGEPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRANGEPS (VRANGEPS-128-1) +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VRANGEPS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x50 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VRANGEPS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRANGEPS (VRANGEPS-256-1) +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VRANGEPS_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x50 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VRANGEPS_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRANGEPS (VRANGEPS-512-1) +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VRANGEPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x50 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VRANGEPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRANGEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x50 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VRANGEPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRANGESD (VRANGESD-128-1) +{ +ICLASS: VRANGESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VRANGESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRANGESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VRANGESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRANGESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x51 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 IMM0:r:b +IFORM: VRANGESD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRANGESS (VRANGESS-128-1) +{ +ICLASS: VRANGESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VRANGESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRANGESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VRANGESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRANGESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x51 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VRANGESS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRCP14PD (VRCP14PD-128-1) +{ +ICLASS: VRCP14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VRCP14PD_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VRCP14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRCP14PD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VRCP14PD (VRCP14PD-256-1) +{ +ICLASS: VRCP14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VRCP14PD_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VRCP14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRCP14PD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VRCP14PS (VRCP14PS-128-1) +{ +ICLASS: VRCP14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VRCP14PS_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VRCP14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRCP14PS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VRCP14PS (VRCP14PS-256-1) +{ +ICLASS: VRCP14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VRCP14PS_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VRCP14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRCP14PS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VREDUCEPD (VREDUCEPD-128-1) +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VREDUCEPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VREDUCEPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VREDUCEPD (VREDUCEPD-256-1) +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VREDUCEPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VREDUCEPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VREDUCEPD (VREDUCEPD-512-1) +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VREDUCEPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W1 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf64 IMM0:r:b +IFORM: VREDUCEPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VREDUCEPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VREDUCEPS (VREDUCEPS-128-1) +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VREDUCEPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VREDUCEPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VREDUCEPS (VREDUCEPS-256-1) +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VREDUCEPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VREDUCEPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VREDUCEPS (VREDUCEPS-512-1) +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VREDUCEPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x56 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN512() SAE() W0 NOEVSR UIMM8() +OPERANDS: REG0=ZMM_R3():w:zf32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_B3():r:zf32 IMM0:r:b +IFORM: VREDUCEPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512 +} + +{ +ICLASS: VREDUCEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x56 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VREDUCEPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VREDUCESD (VREDUCESD-128-1) +{ +ICLASS: VREDUCESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VREDUCESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VREDUCESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VREDUCESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VREDUCESD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x57 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W1 UIMM8() ESIZE_64_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:q:f64 IMM0:r:b +IFORM: VREDUCESD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VREDUCESS (VREDUCESS-128-1) +{ +ICLASS: VREDUCESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VREDUCESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VREDUCESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F3A MOD[0b11] MOD=3 BCRC=1 REG[rrr] RM[nnn] FIX_ROUND_LEN128() SAE() W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32:TXT=SAESTR REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VREDUCESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VREDUCESS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_SCALAR +EXCEPTIONS: AVX512-E3 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR SIMD_SCALAR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_SCALAR +PATTERN: EVV 0x57 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() W0 UIMM8() ESIZE_32_BITS() NELEM_SCALAR() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:d:f32 IMM0:r:b +IFORM: VREDUCESS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRNDSCALEPD (VRNDSCALEPD-128-1) +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x09 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VRNDSCALEPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x09 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VRNDSCALEPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRNDSCALEPD (VRNDSCALEPD-256-1) +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x09 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VRNDSCALEPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x09 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VRNDSCALEPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512 +} + + +# EMITTING VRNDSCALEPS (VRNDSCALEPS-128-1) +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x08 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VRNDSCALEPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x08 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VRNDSCALEPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRNDSCALEPS (VRNDSCALEPS-256-1) +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x08 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VRNDSCALEPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VRNDSCALEPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x08 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VRNDSCALEPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512 +} + + +# EMITTING VRSQRT14PD (VRSQRT14PD-128-1) +{ +ICLASS: VRSQRT14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VRSQRT14PD_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VRSQRT14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRSQRT14PD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VRSQRT14PD (VRSQRT14PD-256-1) +{ +ICLASS: VRSQRT14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VRSQRT14PD_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VRSQRT14PD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VRSQRT14PD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VRSQRT14PS (VRSQRT14PS-128-1) +{ +ICLASS: VRSQRT14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VRSQRT14PS_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VRSQRT14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRSQRT14PS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VRSQRT14PS (VRSQRT14PS-256-1) +{ +ICLASS: VRSQRT14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x4E V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VRSQRT14PS_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VRSQRT14PS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x4E V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VRSQRT14PS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VSCALEFPD (VSCALEFPD-128-1) +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSCALEFPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSCALEFPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VSCALEFPD (VSCALEFPD-256-1) +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VSCALEFPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VSCALEFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSCALEFPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VSCALEFPS (VSCALEFPS-128-1) +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSCALEFPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSCALEFPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VSCALEFPS (VSCALEFPS-256-1) +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x2C V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VSCALEFPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VSCALEFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x2C V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSCALEFPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VSCATTERDPD (VSCATTERDPD-128-1) +{ +ICLASS: VSCATTERDPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA2 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:f64 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:f64 +IFORM: VSCATTERDPD_MEMf64_MASKmskw_XMMf64_AVX512_VL128 +} + + +# EMITTING VSCATTERDPD (VSCATTERDPD-256-1) +{ +ICLASS: VSCATTERDPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA2 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:f64 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:f64 +IFORM: VSCATTERDPD_MEMf64_MASKmskw_YMMf64_AVX512_VL256 +} + + +# EMITTING VSCATTERDPS (VSCATTERDPS-128-1) +{ +ICLASS: VSCATTERDPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA2 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:f32 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VSCATTERDPS_MEMf32_MASKmskw_XMMf32_AVX512_VL128 +} + + +# EMITTING VSCATTERDPS (VSCATTERDPS-256-1) +{ +ICLASS: VSCATTERDPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED DWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA2 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:f32 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:f32 +IFORM: VSCATTERDPS_MEMf32_MASKmskw_YMMf32_AVX512_VL256 +} + + +# EMITTING VSCATTERQPD (VSCATTERQPD-128-1) +{ +ICLASS: VSCATTERQPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA3 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W1 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:f64 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:f64 +IFORM: VSCATTERQPD_MEMf64_MASKmskw_XMMf64_AVX512_VL128 +} + + +# EMITTING VSCATTERQPD (VSCATTERQPD-256-1) +{ +ICLASS: VSCATTERQPD +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA3 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W1 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_64_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:qq:f64 REG0=MASKNOT0():rw:mskw REG1=YMM_R3():r:qq:f64 +IFORM: VSCATTERQPD_MEMf64_MASKmskw_YMMf64_AVX512_VL256 +} + + +# EMITTING VSCATTERQPS (VSCATTERQPS-128-1) +{ +ICLASS: VSCATTERQPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA3 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL128 W0 RM=4 UISA_VMODRM_XMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:q:f32 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VSCATTERQPS_MEMf32_MASKmskw_XMMf32_AVX512_VL128 +} + + +# EMITTING VSCATTERQPS (VSCATTERQPS-256-1) +{ +ICLASS: VSCATTERQPS +CPL: 3 +CATEGORY: SCATTER +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E12 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION SPECIAL_AGEN_REQUIRED QWORD_INDICES SCATTER MASKOP_EVEX DISP8_GSCAT +PATTERN: EVV 0xA3 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 VL256 W0 RM=4 UISA_VMODRM_YMM() eanot16 NOVSR ZEROING=0 ESIZE_32_BITS() NELEM_GSCAT() +OPERANDS: MEM0:w:dq:f32 REG0=MASKNOT0():rw:mskw REG1=XMM_R3():r:dq:f32 +IFORM: VSCATTERQPS_MEMf32_MASKmskw_XMMf32_AVX512_VL256 +} + + +# EMITTING VSHUFF32X4 (VSHUFF32X4-256-1) +{ +ICLASS: VSHUFF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VSHUFF32X4_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFF32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x23 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFF32X4_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VSHUFF64X2 (VSHUFF64X2-256-1) +{ +ICLASS: VSHUFF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x23 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VSHUFF64X2_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFF64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x23 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFF64X2_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VSHUFI32X4 (VSHUFI32X4-256-1) +{ +ICLASS: VSHUFI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 REG3=YMM_B3():r:qq:u32 IMM0:r:b +IFORM: VSHUFI32X4_YMMu32_MASKmskw_YMMu32_YMMu32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFI32X4 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x43 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u32 MEM0:r:vv:u32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFI32X4_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512 +} + + +# EMITTING VSHUFI64X2 (VSHUFI64X2-256-1) +{ +ICLASS: VSHUFI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x43 V66 V0F3A MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 IMM0:r:b +IFORM: VSHUFI64X2_YMMu64_MASKmskw_YMMu64_YMMu64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFI64X2 +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x43 V66 V0F3A MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFI64X2_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512 +} + + +# EMITTING VSHUFPD (VSHUFPD-128-1) +{ +ICLASS: VSHUFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 IMM0:r:b +IFORM: VSHUFPD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFPD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VSHUFPD (VSHUFPD-256-1) +{ +ICLASS: VSHUFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC6 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 IMM0:r:b +IFORM: VSHUFPD_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512 +} + +{ +ICLASS: VSHUFPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC6 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 UIMM8() ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFPD_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512 +} + + +# EMITTING VSHUFPS (VSHUFPS-128-1) +{ +ICLASS: VSHUFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC6 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 UIMM8() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 IMM0:r:b +IFORM: VSHUFPS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC6 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFPS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VSHUFPS (VSHUFPS-256-1) +{ +ICLASS: VSHUFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xC6 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 UIMM8() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 IMM0:r:b +IFORM: VSHUFPS_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512 +} + +{ +ICLASS: VSHUFPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xC6 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 UIMM8() ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR IMM0:r:b +IFORM: VSHUFPS_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512 +} + + +# EMITTING VSQRTPD (VSQRTPD-128-1) +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f64 +IFORM: VSQRTPD_XMMf64_MASKmskw_XMMf64_AVX512 +} + +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x51 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSQRTPD_XMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VSQRTPD (VSQRTPD-256-1) +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f64 +IFORM: VSQRTPD_YMMf64_MASKmskw_YMMf64_AVX512 +} + +{ +ICLASS: VSQRTPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x51 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 NOEVSR ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSQRTPD_YMMf64_MASKmskw_MEMf64_AVX512 +} + + +# EMITTING VSQRTPS (VSQRTPS-128-1) +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 NOEVSR +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_B3():r:dq:f32 +IFORM: VSQRTPS_XMMf32_MASKmskw_XMMf32_AVX512 +} + +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x51 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSQRTPS_XMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VSQRTPS (VSQRTPS-256-1) +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x51 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 NOEVSR +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_B3():r:qq:f32 +IFORM: VSQRTPS_YMMf32_MASKmskw_YMMf32_AVX512 +} + +{ +ICLASS: VSQRTPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x51 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 NOEVSR ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSQRTPS_YMMf32_MASKmskw_MEMf32_AVX512 +} + + +# EMITTING VSUBPD (VSUBPD-128-1) +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VSUBPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5C V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSUBPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VSUBPD (VSUBPD-256-1) +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VSUBPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VSUBPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5C V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VSUBPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VSUBPS (VSUBPS-128-1) +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VSUBPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5C VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSUBPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VSUBPS (VSUBPS-256-1) +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MASKOP_EVEX +PATTERN: EVV 0x5C VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VSUBPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VSUBPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E2 +REAL_OPCODE: Y +ATTRIBUTES: MXCSR MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x5C VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VSUBPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VUNPCKHPD (VUNPCKHPD-128-1) +{ +ICLASS: VUNPCKHPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VUNPCKHPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VUNPCKHPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VUNPCKHPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VUNPCKHPD (VUNPCKHPD-256-1) +{ +ICLASS: VUNPCKHPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VUNPCKHPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VUNPCKHPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VUNPCKHPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VUNPCKHPS (VUNPCKHPS-128-1) +{ +ICLASS: VUNPCKHPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VUNPCKHPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VUNPCKHPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VUNPCKHPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VUNPCKHPS (VUNPCKHPS-256-1) +{ +ICLASS: VUNPCKHPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x15 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VUNPCKHPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VUNPCKHPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x15 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VUNPCKHPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VUNPCKLPD (VUNPCKLPD-128-1) +{ +ICLASS: VUNPCKLPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VUNPCKLPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VUNPCKLPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VUNPCKLPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VUNPCKLPD (VUNPCKLPD-256-1) +{ +ICLASS: VUNPCKLPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VUNPCKLPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VUNPCKLPD +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VUNPCKLPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VUNPCKLPS (VUNPCKLPS-128-1) +{ +ICLASS: VUNPCKLPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VUNPCKLPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VUNPCKLPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VUNPCKLPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VUNPCKLPS (VUNPCKLPS-256-1) +{ +ICLASS: VUNPCKLPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x14 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VUNPCKLPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VUNPCKLPS +CPL: 3 +CATEGORY: AVX512 +EXTENSION: AVX512EVEX +ISA_SET: AVX512F_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x14 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VUNPCKLPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VXORPD (VXORPD-128-1) +{ +ICLASS: VXORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 REG3=XMM_B3():r:dq:f64 +IFORM: VXORPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512 +} + +{ +ICLASS: VXORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x57 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VXORPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512 +} + + +# EMITTING VXORPD (VXORPD-256-1) +{ +ICLASS: VXORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 REG3=YMM_B3():r:qq:f64 +IFORM: VXORPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512 +} + +{ +ICLASS: VXORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x57 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VXORPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512 +} + + +# EMITTING VXORPD (VXORPD-512-1) +{ +ICLASS: VXORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x57 V66 V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 REG3=ZMM_B3():r:zf64 +IFORM: VXORPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512 +} + +{ +ICLASS: VXORPD +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x57 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf64 MEM0:r:vv:f64:TXT=BCASTSTR +IFORM: VXORPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512 +} + + +# EMITTING VXORPS (VXORPS-128-1) +{ +ICLASS: VXORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x57 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 REG3=XMM_B3():r:dq:f32 +IFORM: VXORPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512 +} + +{ +ICLASS: VXORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x57 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VXORPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512 +} + + +# EMITTING VXORPS (VXORPS-256-1) +{ +ICLASS: VXORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x57 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 REG3=YMM_B3():r:qq:f32 +IFORM: VXORPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512 +} + +{ +ICLASS: VXORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x57 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:f32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:f32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VXORPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512 +} + + +# EMITTING VXORPS (VXORPS-512-1) +{ +ICLASS: VXORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x57 VNP V0F MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 REG3=ZMM_B3():r:zf32 +IFORM: VXORPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512 +} + +{ +ICLASS: VXORPS +CPL: 3 +CATEGORY: LOGICAL_FP +EXTENSION: AVX512EVEX +ISA_SET: AVX512DQ_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x57 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W0 ESIZE_32_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zf32 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zf32 MEM0:r:vv:f32:TXT=BCASTSTR +IFORM: VXORPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512 +} + + +AVX_INSTRUCTIONS():: +# EMITTING KADDB (KADDB-256-1) +{ +ICLASS: KADDB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4A V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KADDB_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KADDD (KADDD-256-1) +{ +ICLASS: KADDD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4A V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KADDD_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KADDQ (KADDQ-256-1) +{ +ICLASS: KADDQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4A VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KADDQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KADDW (KADDW-256-1) +{ +ICLASS: KADDW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4A VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KADDW_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDB (KANDB-256-1) +{ +ICLASS: KANDB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x41 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDB_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDD (KANDD-256-1) +{ +ICLASS: KANDD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x41 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDD_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDNB (KANDNB-256-1) +{ +ICLASS: KANDNB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x42 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDNB_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDND (KANDND-256-1) +{ +ICLASS: KANDND +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x42 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDND_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDNQ (KANDNQ-256-1) +{ +ICLASS: KANDNQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x42 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDNQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KANDQ (KANDQ-256-1) +{ +ICLASS: KANDQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x41 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KANDQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KMOVB (KMOVB-128-1) +{ +ICLASS: KMOVB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw:u8 +IFORM: KMOVB_MASKmskw_MASKu8_AVX512 +} + +{ +ICLASS: KMOVB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw MEM0:r:b:u8 +IFORM: KMOVB_MASKmskw_MEMu8_AVX512 +} + + +# EMITTING KMOVB (KMOVB-128-2) +{ +ICLASS: KMOVB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x91 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W0 NOVSR +OPERANDS: MEM0:w:b:u8 REG0=MASK_R():r:mskw +IFORM: KMOVB_MEMu8_MASKmskw_AVX512 +} + + +# EMITTING KMOVB (KMOVB-128-3) +{ +ICLASS: KMOVB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x92 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=GPR32_B():r:d:u32 +IFORM: KMOVB_MASKmskw_GPR32u32_AVX512 +} + + +# EMITTING KMOVB (KMOVB-128-4) +{ +ICLASS: KMOVB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x93 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=MASK_B():r:mskw +IFORM: KMOVB_GPR32u32_MASKmskw_AVX512 +} + + +# EMITTING KMOVD (KMOVD-128-1) +{ +ICLASS: KMOVD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw:u32 +IFORM: KMOVD_MASKmskw_MASKu32_AVX512 +} + +{ +ICLASS: KMOVD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():w:mskw MEM0:r:d:u32 +IFORM: KMOVD_MASKmskw_MEMu32_AVX512 +} + + +# EMITTING KMOVD (KMOVD-128-2) +{ +ICLASS: KMOVD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x91 V66 V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W1 NOVSR +OPERANDS: MEM0:w:d:u32 REG0=MASK_R():r:mskw +IFORM: KMOVD_MEMu32_MASKmskw_AVX512 +} + + +# EMITTING KMOVD (KMOVD-128-3) +{ +ICLASS: KMOVD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x92 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=GPR32_B():r:d:u32 +IFORM: KMOVD_MASKmskw_GPR32u32_AVX512 +} + + +# EMITTING KMOVD (KMOVD-128-4) +{ +ICLASS: KMOVD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x93 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=GPR32_R():w:d:u32 REG1=MASK_B():r:mskw +IFORM: KMOVD_GPR32u32_MASKmskw_AVX512 +} + + +# EMITTING KMOVQ (KMOVQ-128-1) +{ +ICLASS: KMOVQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw:u64 +IFORM: KMOVQ_MASKmskw_MASKu64_AVX512 +} + +{ +ICLASS: KMOVQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x90 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():w:mskw MEM0:r:q:u64 +IFORM: KMOVQ_MASKmskw_MEMu64_AVX512 +} + + +# EMITTING KMOVQ (KMOVQ-128-2) +{ +ICLASS: KMOVQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K21 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x91 VNP V0F MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL=0 W1 NOVSR +OPERANDS: MEM0:w:q:u64 REG0=MASK_R():r:mskw +IFORM: KMOVQ_MEMu64_MASKmskw_AVX512 +} + + +# EMITTING KMOVQ (KMOVQ-128-3) +{ +ICLASS: KMOVQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x92 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 mode64 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=GPR64_B():r:q:u64 +IFORM: KMOVQ_MASKmskw_GPR64u64_AVX512 +} + + +# EMITTING KMOVQ (KMOVQ-128-4) +{ +ICLASS: KMOVQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x93 VF2 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 mode64 NOVSR +OPERANDS: REG0=GPR64_R():w:q:u64 REG1=MASK_B():r:mskw +IFORM: KMOVQ_GPR64u64_MASKmskw_AVX512 +} + + +# EMITTING KNOTB (KNOTB-128-1) +{ +ICLASS: KNOTB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x44 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw +IFORM: KNOTB_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KNOTD (KNOTD-128-1) +{ +ICLASS: KNOTD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x44 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw +IFORM: KNOTD_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KNOTQ (KNOTQ-128-1) +{ +ICLASS: KNOTQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x44 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw +IFORM: KNOTQ_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORB (KORB-256-1) +{ +ICLASS: KORB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x45 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KORB_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORD (KORD-256-1) +{ +ICLASS: KORD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x45 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KORD_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORQ (KORQ-256-1) +{ +ICLASS: KORQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x45 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KORQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORTESTB (KORTESTB-128-1) +{ +ICLASS: KORTESTB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x98 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KORTESTB_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORTESTD (KORTESTD-128-1) +{ +ICLASS: KORTESTD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x98 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KORTESTD_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KORTESTQ (KORTESTQ-128-1) +{ +ICLASS: KORTESTQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x98 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KORTESTQ_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KSHIFTLB (KSHIFTLB-128-1) +{ +ICLASS: KSHIFTLB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x32 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTLB_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KSHIFTLD (KSHIFTLD-128-1) +{ +ICLASS: KSHIFTLD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x33 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTLD_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KSHIFTLQ (KSHIFTLQ-128-1) +{ +ICLASS: KSHIFTLQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x33 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTLQ_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KSHIFTRB (KSHIFTRB-128-1) +{ +ICLASS: KSHIFTRB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x30 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTRB_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KSHIFTRD (KSHIFTRD-128-1) +{ +ICLASS: KSHIFTRD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x31 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTRD_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KSHIFTRQ (KSHIFTRQ-128-1) +{ +ICLASS: KSHIFTRQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x31 V66 V0F3A MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR UIMM8() +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_B():r:mskw IMM0:r:b +IFORM: KSHIFTRQ_MASKmskw_MASKmskw_IMM8_AVX512 +} + + +# EMITTING KTESTB (KTESTB-128-1) +{ +ICLASS: KTESTB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x99 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KTESTB_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KTESTD (KTESTD-128-1) +{ +ICLASS: KTESTD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x99 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KTESTD_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KTESTQ (KTESTQ-128-1) +{ +ICLASS: KTESTQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x99 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W1 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KTESTQ_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KTESTW (KTESTW-128-1) +{ +ICLASS: KTESTW +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +FLAGS: MUST [ cf-mod zf-mod pf-0 of-0 af-0 sf-0 ] +ATTRIBUTES: KMASK +PATTERN: VV1 0x99 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=0 W0 NOVSR +OPERANDS: REG0=MASK_R():r:mskw REG1=MASK_B():r:mskw +IFORM: KTESTW_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KUNPCKDQ (KUNPCKDQ-256-1) +{ +ICLASS: KUNPCKDQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4B VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KUNPCKDQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KUNPCKWD (KUNPCKWD-256-1) +{ +ICLASS: KUNPCKWD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x4B VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KUNPCKWD_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXNORB (KXNORB-256-1) +{ +ICLASS: KXNORB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x46 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXNORB_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXNORD (KXNORD-256-1) +{ +ICLASS: KXNORD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x46 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXNORD_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXNORQ (KXNORQ-256-1) +{ +ICLASS: KXNORQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x46 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXNORQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXORB (KXORB-256-1) +{ +ICLASS: KXORB +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512DQ_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x47 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W0 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXORB_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXORD (KXORD-256-1) +{ +ICLASS: KXORD +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x47 V66 V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXORD_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + +# EMITTING KXORQ (KXORQ-256-1) +{ +ICLASS: KXORQ +CPL: 3 +CATEGORY: KMASK +EXTENSION: AVX512VEX +ISA_SET: AVX512BW_KOP +EXCEPTIONS: AVX512-K20 +REAL_OPCODE: Y +ATTRIBUTES: KMASK +PATTERN: VV1 0x47 VNP V0F MOD[0b11] MOD=3 REG[rrr] RM[nnn] VL=1 W1 +OPERANDS: REG0=MASK_R():w:mskw REG1=MASK_N():r:mskw REG2=MASK_B():r:mskw +IFORM: KXORQ_MASKmskw_MASKmskw_MASKmskw_AVX512 +} + + + + +###FILE: ../xed/datafiles/avx512ifma/ifma-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VPMADD52HUQ (VPMADD52HUQ-128-1) +{ +ICLASS: VPMADD52HUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xB5 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPMADD52HUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPMADD52HUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB5 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMADD52HUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMADD52HUQ (VPMADD52HUQ-256-1) +{ +ICLASS: VPMADD52HUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xB5 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPMADD52HUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPMADD52HUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB5 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMADD52HUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMADD52HUQ (VPMADD52HUQ-512-1) +{ +ICLASS: VPMADD52HUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xB5 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPMADD52HUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPMADD52HUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB5 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMADD52HUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMADD52LUQ (VPMADD52LUQ-128-1) +{ +ICLASS: VPMADD52LUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xB4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 REG3=XMM_B3():r:dq:u64 +IFORM: VPMADD52LUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512 +} + +{ +ICLASS: VPMADD52LUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_128 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():rw:dq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMADD52LUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMADD52LUQ (VPMADD52LUQ-256-1) +{ +ICLASS: VPMADD52LUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xB4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 REG3=YMM_B3():r:qq:u64 +IFORM: VPMADD52LUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512 +} + +{ +ICLASS: VPMADD52LUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_256 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():rw:qq:u64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMADD52LUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512 +} + + +# EMITTING VPMADD52LUQ (VPMADD52LUQ-512-1) +{ +ICLASS: VPMADD52LUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0xB4 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 REG3=ZMM_B3():r:zu64 +IFORM: VPMADD52LUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512 +} + +{ +ICLASS: VPMADD52LUQ +CPL: 3 +CATEGORY: IFMA +EXTENSION: AVX512EVEX +ISA_SET: AVX512IFMA_512 +EXCEPTIONS: AVX512-E4 +REAL_OPCODE: Y +ATTRIBUTES: MEMORY_FAULT_SUPPRESSION MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0xB4 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():rw:zu64 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu64 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMADD52LUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512 +} + + + + +###FILE: ../xed/datafiles/avx512vbmi/vbmi-isa.xed.txt + +#BEGIN_LEGAL +# +#Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#END_LEGAL +# +# +# +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# ***** GENERATED FILE -- DO NOT EDIT! ***** +# +# +# +EVEX_INSTRUCTIONS():: +# EMITTING VPERMB (VPERMB-128-1) +{ +ICLASS: VPERMB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPERMB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPERMB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x8D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPERMB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMB (VPERMB-256-1) +{ +ICLASS: VPERMB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPERMB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPERMB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x8D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPERMB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMB (VPERMB-512-1) +{ +ICLASS: VPERMB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x8D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPERMB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPERMB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x8D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPERMB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMI2B (VPERMI2B-128-1) +{ +ICLASS: VPERMI2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPERMI2B_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPERMI2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():rw:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPERMI2B_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMI2B (VPERMI2B-256-1) +{ +ICLASS: VPERMI2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPERMI2B_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPERMI2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():rw:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPERMI2B_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMI2B (VPERMI2B-512-1) +{ +ICLASS: VPERMI2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x75 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPERMI2B_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPERMI2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x75 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():rw:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPERMI2B_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMT2B (VPERMT2B-128-1) +{ +ICLASS: VPERMT2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W0 +OPERANDS: REG0=XMM_R3():rw:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u8 +IFORM: VPERMT2B_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512 +} + +{ +ICLASS: VPERMT2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL128 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=XMM_R3():rw:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:dq:u8 +IFORM: VPERMT2B_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMT2B (VPERMT2B-256-1) +{ +ICLASS: VPERMT2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W0 +OPERANDS: REG0=YMM_R3():rw:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u8 +IFORM: VPERMT2B_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512 +} + +{ +ICLASS: VPERMT2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL256 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=YMM_R3():rw:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:qq:u8 +IFORM: VPERMT2B_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512 +} + + +# EMITTING VPERMT2B (VPERMT2B-512-1) +{ +ICLASS: VPERMT2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x7D V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W0 +OPERANDS: REG0=ZMM_R3():rw:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu8 +IFORM: VPERMT2B_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512 +} + +{ +ICLASS: VPERMT2B +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULLMEM +PATTERN: EVV 0x7D V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] BCRC=0 MODRM() VL512 W0 ESIZE_8_BITS() NELEM_FULLMEM() +OPERANDS: REG0=ZMM_R3():rw:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:zd:u8 +IFORM: VPERMT2B_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512 +} + + +# EMITTING VPMULTISHIFTQB (VPMULTISHIFTQB-128-1) +{ +ICLASS: VPMULTISHIFTQB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x83 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL128 W1 +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 REG3=XMM_B3():r:dq:u64 +IFORM: VPMULTISHIFTQB_XMMu8_MASKmskw_XMMu8_XMMu64_AVX512 +} + +{ +ICLASS: VPMULTISHIFTQB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_128 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x83 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL128 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=XMM_R3():w:dq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=XMM_N3():r:dq:u8 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMULTISHIFTQB_XMMu8_MASKmskw_XMMu8_MEMu64_AVX512 +} + + +# EMITTING VPMULTISHIFTQB (VPMULTISHIFTQB-256-1) +{ +ICLASS: VPMULTISHIFTQB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x83 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL256 W1 +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 REG3=YMM_B3():r:qq:u64 +IFORM: VPMULTISHIFTQB_YMMu8_MASKmskw_YMMu8_YMMu64_AVX512 +} + +{ +ICLASS: VPMULTISHIFTQB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_256 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x83 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL256 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=YMM_R3():w:qq:u8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=YMM_N3():r:qq:u8 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMULTISHIFTQB_YMMu8_MASKmskw_YMMu8_MEMu64_AVX512 +} + + +# EMITTING VPMULTISHIFTQB (VPMULTISHIFTQB-512-1) +{ +ICLASS: VPMULTISHIFTQB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX +PATTERN: EVV 0x83 V66 V0F38 MOD[0b11] MOD=3 BCRC=0 REG[rrr] RM[nnn] VL512 W1 +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 REG3=ZMM_B3():r:zu64 +IFORM: VPMULTISHIFTQB_ZMMu8_MASKmskw_ZMMu8_ZMMu64_AVX512 +} + +{ +ICLASS: VPMULTISHIFTQB +CPL: 3 +CATEGORY: AVX512VBMI +EXTENSION: AVX512EVEX +ISA_SET: AVX512VBMI_512 +EXCEPTIONS: AVX512-E4NF +REAL_OPCODE: Y +ATTRIBUTES: MASKOP_EVEX DISP8_FULL BROADCAST_ENABLED +PATTERN: EVV 0x83 V66 V0F38 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() VL512 W1 ESIZE_64_BITS() NELEM_FULL() +OPERANDS: REG0=ZMM_R3():w:zu8 REG1=MASK1():r:mskw:TXT=ZEROSTR REG2=ZMM_N3():r:zu8 MEM0:r:vv:u64:TXT=BCASTSTR +IFORM: VPMULTISHIFTQB_ZMMu8_MASKmskw_ZMMu8_MEMu64_AVX512 +} + + diff --git a/pkg/ifuzz/gen/gen.go b/pkg/ifuzz/gen/gen.go new file mode 100644 index 000000000..d1dfd2880 --- /dev/null +++ b/pkg/ifuzz/gen/gen.go @@ -0,0 +1,534 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +// gen generates instruction tables (ifuzz/insns.go) from Intel XED tables. +// Tables used to generate insns.go are checked in in all-enc-instructions.txt. +package main + +import ( + "bufio" + "fmt" + "os" + "reflect" + "strconv" + "strings" + + "github.com/google/syzkaller/pkg/ifuzz" +) + +func main() { + if len(os.Args) != 2 { + failf("usage: gen instructions.txt") + } + f, err := os.Open(os.Args[1]) + if err != nil { + failf("failed to open input file: %v", err) + } + defer f.Close() + + skipped := 0 + saved := "" + var insns []*ifuzz.Insn + var insn, insn1 *ifuzz.Insn + s := bufio.NewScanner(f) + for i := 1; s.Scan(); i++ { + reportError := func(msg string, args ...interface{}) { + fmt.Fprintf(os.Stderr, "line %v: %v\n", i, s.Text()) + failf(msg, args...) + } + line := s.Text() + if comment := strings.IndexByte(line, '#'); comment != -1 { + line = line[:comment] + } + line = strings.TrimSpace(line) + if line == "" { + continue + } + if line[len(line)-1] == '\\' { + saved += line[:len(line)-1] + continue + } + line = saved + line + saved = "" + if line == "{" { + insn = new(ifuzz.Insn) + continue + } + if line == "}" { + if insn1 != nil { + insns = append(insns, insn1) + insn1 = nil + insn = nil + } + continue + } + colon := strings.IndexByte(line, ':') + if colon == -1 { + reportError("no colon") + } + name := strings.TrimSpace(line[:colon]) + if name == "" { + reportError("empty attribute name") + } + var vals []string + for _, v := range strings.Split(line[colon+1:], " ") { + v = strings.TrimSpace(v) + if v == "" { + continue + } + vals = append(vals, v) + } + switch name { + case "ICLASS": + if len(vals) != 1 { + reportError("ICLASS has more than one value") + } + insn.Name = vals[0] + case "CPL": + if len(vals) != 1 { + reportError("CPL has more than one value") + } + if vals[0] != "0" && vals[0] != "3" { + reportError("unknown CPL value: %v", vals[0]) + } + insn.Priv = vals[0] == "0" + case "EXTENSION": + if len(vals) != 1 { + reportError("EXTENSION has more than one value") + } + insn.Extension = vals[0] + switch insn.Extension { + case "FMA", "AVX2", "AVX", "F16C", "BMI2", "BMI", "XOP", "FMA4", "AVXAES", "BMI1", "AVX2GATHER": + insn.Mode = 1<<ifuzz.ModeLong64 | 1<<ifuzz.ModeProt32 + } + insn.Avx2Gather = insn.Extension == "AVX2GATHER" + case "PATTERN": + if insn1 != nil { + insns = append(insns, insn1) + } + insn1 = new(ifuzz.Insn) + *insn1 = *insn + if err := parsePattern(insn1, vals); err != nil { + if _, ok := err.(errSkip); !ok { + reportError(err.Error()) + } + if err.Error() != "" { + fmt.Fprintf(os.Stderr, "skipping %v on line %v (%v)\n", insn.Name, i, err) + } + skipped++ + insn1 = nil + } + case "OPERANDS": + if insn1 == nil { + break + } + if err := parseOperands(insn1, vals); err != nil { + if _, ok := err.(errSkip); !ok { + reportError(err.Error()) + } + if err.Error() != "" { + fmt.Fprintf(os.Stderr, "skipping %v on line %v (%v)\n", insn.Name, i, err) + } + skipped++ + insn1 = nil + } + } + } + + var deduped []*ifuzz.Insn +nextInsn: + for _, insn := range insns { + mod0 := insn.Mod + for j := len(deduped) - 1; j >= 0; j-- { + insn1 := deduped[j] + if insn.Mod == 3 && insn1.Mod == -3 || insn.Mod == -3 && insn1.Mod == 3 || insn1.Mod == -1 { + insn.Mod = insn1.Mod + } + if reflect.DeepEqual(insn, insn1) { + if insn.Mod != mod0 { + insn1.Mod = -1 + } + continue nextInsn + } + insn.Mod = mod0 + } + deduped = append(deduped, insn) + } + fmt.Fprintf(os.Stderr, "deduped %v instructions\n", len(insns)-len(deduped)) + insns = deduped + + fmt.Printf("// AUTOGENERATED FILE\n") + fmt.Printf("package ifuzz\n\n") + fmt.Printf("var Insns = []*Insn{\n") + for _, insn := range insns { + if insn.Extension == "AVX512VEX" || insn.Extension == "AVX512EVEX" { + skipped++ + continue + } + + text := fmt.Sprintf("%#v", insn) + text = strings.Replace(text, "ifuzz.Insn", "Insn", -1) + text = strings.Replace(text, ", generator:(func(*ifuzz.Config, *rand.Rand) []uint8)(nil)", "", -1) + fmt.Printf(" %v,\n", text) + } + fmt.Printf("}\n") + + fmt.Fprintf(os.Stderr, "handled %v, skipped %v\n", len(insns), skipped) +} + +type errSkip string + +func (err errSkip) Error() string { + return string(err) +} + +func parsePattern(insn *ifuzz.Insn, vals []string) error { + if insn.Opcode != nil { + return fmt.Errorf("PATTERN is already parsed for the instruction") + } + // As spelled these have incorrect format for 16-bit addressing mode and with 67 prefix. + if insn.Name == "NOP5" || insn.Name == "NOP6" || insn.Name == "NOP7" || insn.Name == "NOP8" || insn.Name == "NOP9" { + return errSkip("") + } + if insn.Mode == 0 { + insn.Mode = 1<<ifuzz.ModeLast - 1 + } + insn.Mod = -100 + insn.Reg = -100 + insn.Rm = -100 + insn.VexP = -1 + for _, v := range vals { + switch { + case strings.HasPrefix(v, "0x"): + op, err := strconv.ParseUint(v, 0, 8) + if err != nil { + return fmt.Errorf("failed to parse hex pattern: %v", v) + } + if !insn.Modrm { + insn.Opcode = append(insn.Opcode, byte(op)) + } else { + insn.Suffix = append(insn.Suffix, byte(op)) + } + case strings.HasPrefix(v, "0b"): + if len(v) != 8 || v[6] != '_' { + return fmt.Errorf("failed to parse bin pattern: %v", v) + } + var op byte + if v[2] == '1' { + op |= 1 << 7 + } + if v[3] == '1' { + op |= 1 << 6 + } + if v[4] == '1' { + op |= 1 << 5 + } + if v[5] == '1' { + op |= 1 << 4 + } + if v[7] == '1' { + op |= 1 << 3 + } + insn.Opcode = append(insn.Opcode, op) + case strings.HasPrefix(v, "MOD["): + insn.Modrm = true + vv, err := parseModrm(v[3:]) + if err != nil { + return fmt.Errorf("failed to parse %v: %v", v, err) + } + insn.Mod = vv + case strings.HasPrefix(v, "REG["): + insn.Modrm = true + vv, err := parseModrm(v[3:]) + if err != nil { + return fmt.Errorf("failed to parse %v: %v", v, err) + } + insn.Reg = vv + case strings.HasPrefix(v, "RM["): + insn.Modrm = true + vv, err := parseModrm(v[2:]) + if err != nil { + return fmt.Errorf("failed to parse %v: %v", v, err) + } + insn.Rm = vv + case v == "RM=4": + insn.Rm = 4 + case strings.HasPrefix(v, "SRM["): + vv, err := parseModrm(v[3:]) + if err != nil { + return fmt.Errorf("failed to parse %v: %v", v, err) + } + insn.Rm = vv + insn.Srm = true + case v == "SRM=0", v == "SRM!=0": + case v == "MOD!=3": + if !insn.Modrm || insn.Mod != -1 { + return fmt.Errorf("MOD!=3 without MOD") + } + insn.Mod = -3 + case v == "MOD=3": + // Most other instructions contain "MOD[0b11] MOD=3", + // but BNDCL contains "MOD[mm] MOD=3" + insn.Mod = 3 + case v == "MOD=0": + insn.Mod = 0 + case v == "MOD=1": + insn.Mod = 1 + case v == "MOD=2": + insn.Mod = 2 + case v == "MODRM()": + case v == "lock_prefix": + insn.Prefix = append(insn.Prefix, 0xF0) + case v == "nolock_prefix": + + // Immediates. + case v == "UIMM8()", v == "SIMM8()": + addImm(insn, 1) + case v == "UIMM16()": + addImm(insn, 2) + case v == "UIMM32()": + addImm(insn, 4) + case v == "SIMMz()": + addImm(insn, -1) + case v == "UIMMv()": + addImm(insn, -3) + case v == "UIMM8_1()": + addImm(insn, 1) + case v == "BRDISP8()": + addImm(insn, 1) + case v == "BRDISP32()": + addImm(insn, 4) + case v == "BRDISPz()": + addImm(insn, -1) + case v == "MEMDISPv()": + addImm(insn, -2) + + // VOP/VEX + case v == "XOPV": + insn.Vex = 0x8f + insn.Mode &^= 1 << ifuzz.ModeReal16 + case v == "EVV": + insn.Vex = 0xc4 + case v == "VV1": + insn.Vex = 0xc4 + case v == "VMAP0": + insn.VexMap = 0 + case v == "V0F": + insn.VexMap = 1 + case v == "V0F38": + insn.VexMap = 2 + case v == "V0F3A": + insn.VexMap = 3 + case v == "XMAP8": + insn.VexMap = 8 + case v == "XMAP9": + insn.VexMap = 9 + case v == "XMAPA": + insn.VexMap = 10 + case v == "VNP": + insn.VexP = 0 + case v == "V66": + insn.VexP = 1 + case v == "VF2": + insn.VexP = 3 + case v == "VF3": + insn.VexP = 2 + case v == "VL128", v == "VL=0": + insn.VexL = -1 + case v == "VL256", v == "VL=1": + insn.VexL = 1 + case v == "VL512": + // VL=2 + case v == "NOVSR": + insn.VexNoR = true + case v == "NOEVSR": + insn.VexNoR = true + // VEXDEST3=0b1 VEXDEST210=0b111 VEXDEST4=0b0 + case v == "SE_IMM8()": + addImm(insn, 1) + case v == "VMODRM_XMM()": + case v == "VMODRM_YMM()": + case v == "BCRC=0": + case v == "BCRC=1": + case v == "ESIZE_8_BITS()": + case v == "ESIZE_16_BITS()": + case v == "ESIZE_32_BITS()": + case v == "ESIZE_64_BITS()": + case v == "NELEM_GPR_WRITER_STORE()": + case v == "NELEM_GPR_WRITER_STORE_BYTE()": + case v == "NELEM_GPR_WRITER_STORE_WORD()": + case v == "NELEM_GPR_WRITER_LDOP_Q()": + case v == "NELEM_GPR_WRITER_LDOP_D()": + case v == "NELEM_GPR_READER()": + case v == "NELEM_GPR_READER_BYTE()": + case v == "NELEM_GPR_READER_WORD()": + case v == "NELEM_GSCAT()": + case v == "NELEM_HALF()": + case v == "NELEM_FULL()": + case v == "NELEM_FULLMEM()": + case v == "NELEM_QUARTERMEM()": + case v == "NELEM_EIGHTHMEM()": + case v == "NELEM_HALFMEM()": + case v == "NELEM_QUARTERMEM()": + case v == "NELEM_MEM128()": + case v == "NELEM_SCALAR()": + case v == "NELEM_TUPLE1()": + case v == "NELEM_TUPLE2()": + case v == "NELEM_TUPLE4()": + case v == "NELEM_TUPLE8()": + case v == "NELEM_TUPLE1_4X()": + case v == "NELEM_TUPLE1_BYTE()": + case v == "NELEM_TUPLE1_WORD()": + case v == "NELEM_MOVDDUP()": + case v == "UISA_VMODRM_XMM()": + case v == "UISA_VMODRM_YMM()": + case v == "UISA_VMODRM_ZMM()": + case v == "MASK=0": + case v == "FIX_ROUND_LEN128()": + case v == "FIX_ROUND_LEN512()": + case v == "AVX512_ROUND()": + case v == "ZEROING=0": + case v == "SAE()": + + // Modes + case v == "mode64": + insn.Mode &= 1 << ifuzz.ModeLong64 + case v == "not64": + insn.Mode &^= 1 << ifuzz.ModeLong64 + case v == "mode32": + insn.Mode &= 1 << ifuzz.ModeProt32 + case v == "mode16": + insn.Mode &= 1<<ifuzz.ModeProt16 | 1<<ifuzz.ModeReal16 + case v == "eamode64": + case v == "eamode32": + case v == "eamode16": + case v == "eanot16": + + case v == "no_refining_prefix": + insn.NoRepPrefix = true + insn.No66Prefix = true + case v == "no66_prefix": + insn.No66Prefix = true + case v == "not_refining_f3": + case v == "f2_refining_prefix", v == "refining_f2", v == "repne", v == "REP=2": + insn.Prefix = append(insn.Prefix, 0xF2) + insn.NoRepPrefix = true + case v == "f3_refining_prefix", v == "refining_f3", v == "repe", v == "REP=3": + insn.Prefix = append(insn.Prefix, 0xF3) + insn.NoRepPrefix = true + case v == "norep", v == "not_refining", v == "REP=0": + insn.NoRepPrefix = true + case v == "osz_refining_prefix": + insn.Prefix = append(insn.Prefix, 0x66) + insn.NoRepPrefix = true + case v == "rexw_prefix", v == "W1": + insn.Rexw = 1 + case v == "norexw_prefix", v == "W0": + insn.Rexw = -1 + case v == "MPXMODE=1", v == "MPXMODE=0": + case v == "TZCNT=1", v == "TZCNT=0": + case v == "LZCNT=1", v == "LZCNT=0": + case v == "CR_WIDTH()": + case v == "DF64()": + case v == "IMMUNE_REXW()": + case v == "FORCE64()": + case v == "eosz32", v == "eosz64": + insn.No66Prefix = true + case v == "EOSZ=1", v == "EOSZ!=1", v == "EOSZ=2", v == "EOSZ!=2", v == "EOSZ=3", v == "EOSZ!=3": + case v == "BRANCH_HINT()": + case v == "P4=1", v == "P4=0": + case v == "rexb_prefix", v == "norexb_prefix": + case strings.HasPrefix(v, "MODEP5="): + case v == "IMMUNE66()", v == "REFINING66()", v == "IGNORE66()", v == "IMMUNE66_LOOP64()": + case v == "OVERRIDE_SEG0()", v == "OVERRIDE_SEG1()", v == "REMOVE_SEGMENT()": + case v == "ONE()": + default: + return errSkip(fmt.Sprintf("unknown pattern %v", v)) + } + } + if insn.Modrm { + switch insn.Mod { + case -3, -1, 0, 1, 2, 3: + default: + return fmt.Errorf("bad MOD value: %v", insn.Mod) + } + if insn.Reg < -1 || insn.Reg > 7 { + return fmt.Errorf("bad REG value: %v", insn.Mod) + } + if insn.Rm < -1 || insn.Rm > 7 { + return fmt.Errorf("bad RM value: %v", insn.Mod) + } + } + if insn.Imm != 0 && len(insn.Suffix) != 0 { + return fmt.Errorf("both immediate and suffix opcode") + } + if insn.Mode == 0 { + return errSkip("no modes for instruction") + } + return nil +} + +func parseOperands(insn *ifuzz.Insn, vals []string) error { + for _, v := range vals { + switch v { + case "REG0=SEG():r", "REG1=SEG():r", "REG0=SEG():w": + if insn.Reg != -1 { + return fmt.Errorf("REG=SEG() operand, but fixed reg") + } + insn.Reg = -6 + case "REG0=CR_R():w", "REG1=CR_R():r": + if insn.Reg != -1 { + return fmt.Errorf("REG=CR_R() operand, but fixed reg") + } + insn.Reg = -8 + insn.NoSibDisp = true + case "REG0=DR_R():w", "REG1=DR_R():r": + insn.NoSibDisp = true + case "MEM0:r:mem16", "MEM0:w:mem16", "MEM0:r:mem16int", "MEM0:w:mem16int": + insn.Mem16 = true + case "MEM0:r:mem32real", "MEM0:r:mem32int", "MEM0:w:mem32real", "MEM0:w:mem32int": + insn.Mem32 = true + } + } + return nil +} + +func parseModrm(v string) (int8, error) { + if len(v) < 4 || len(v) > 7 || v[0] != '[' || v[len(v)-1] != ']' { + return 0, fmt.Errorf("malformed") + } + if v == "[mm]" || v == "[rrr]" || v == "[nnn]" { + return -1, nil + } + if !strings.HasPrefix(v, "[0b") { + return 0, fmt.Errorf("malformed") + } + var vv int8 + for i := 3; i < len(v)-1; i++ { + if v[i] != '0' && v[i] != '1' { + return 0, fmt.Errorf("malformed") + } + vv *= 2 + if v[i] == '1' { + vv += 1 + } + } + return vv, nil +} + +func addImm(insn *ifuzz.Insn, imm int8) { + if insn.Imm == 0 { + insn.Imm = imm + return + } + if insn.Imm2 == 0 { + insn.Imm2 = imm + return + } + panic("too many immediates") +} + +func failf(msg string, args ...interface{}) { + fmt.Fprintf(os.Stderr, msg+"\n", args...) + os.Exit(1) +} diff --git a/pkg/ifuzz/ifuzz.go b/pkg/ifuzz/ifuzz.go new file mode 100644 index 000000000..d21a41641 --- /dev/null +++ b/pkg/ifuzz/ifuzz.go @@ -0,0 +1,299 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +//go:generate bash -c "echo -e 'package ifuzz\nvar Insns []*Insn' > insns.go" +//go:generate bash -c "go run gen/gen.go gen/all-enc-instructions.txt > /tmp/insns.go" +//go:generate mv /tmp/insns.go insns.go +//go:generate go fmt insns.go + +// Package ifuzz allows to generate and mutate x86 machine code. +package ifuzz + +import ( + "math/rand" +) + +const ( + ModeLong64 = iota + ModeProt32 + ModeProt16 + ModeReal16 + ModeLast +) + +type Insn struct { + Name string + Extension string + + Mode int // bitmask of compatible modes + Priv bool // CPL=0 + Pseudo bool // pseudo instructions can consist of several real instructions + + Opcode []byte + Prefix []byte + Suffix []byte + Modrm bool + Mod int8 + Reg int8 // -6 - segment register, -8 - control register + Rm int8 + Srm bool // register is embed in the first byte + NoSibDisp bool // no SIB/disp even if modrm says otherwise + Imm int8 // immediate size, -1 - immediate size, -2 - address size, -3 - operand size + Imm2 int8 + NoRepPrefix bool + No66Prefix bool + Rexw int8 // 1 must be set, -1 must not be set + Mem32 bool // instruction always references 32-bit memory operand, 0x67 is illegal + Mem16 bool // instruction always references 16-bit memory operand + + Vex byte + VexMap byte + VexL int8 + VexNoR bool + VexP int8 + Avx2Gather bool + + generator func(cfg *Config, r *rand.Rand) []byte // for pseudo instructions +} + +type Config struct { + Len int // number of instructions to generate + Mode int // one of ModeXXX + Priv bool // generate CPL=0 instructions + Exec bool // generate instructions sequences interesting for execution + MemRegions []MemRegion // generated instructions will reference these regions +} + +type MemRegion struct { + Start uint64 + Size uint64 +} + +const ( + typeExec = iota + typePriv + typeUser + typeAll + typeLast +) + +var modeInsns [ModeLast][typeLast][]*Insn + +func init() { + initPseudo() + for mode := 0; mode < ModeLast; mode++ { + for _, insn := range Insns { + if insn.Mode&(1<<uint(mode)) == 0 { + continue + } + if insn.Pseudo { + modeInsns[mode][typeExec] = append(modeInsns[mode][typeExec], insn) + } else if insn.Priv { + modeInsns[mode][typePriv] = append(modeInsns[mode][typePriv], insn) + modeInsns[mode][typeAll] = append(modeInsns[mode][typeAll], insn) + } else { + modeInsns[mode][typeUser] = append(modeInsns[mode][typeUser], insn) + modeInsns[mode][typeAll] = append(modeInsns[mode][typeAll], insn) + } + } + } +} + +// ModeInsns returns list of all instructions for the given mode. +func ModeInsns(cfg *Config) []*Insn { + if cfg.Mode < 0 || cfg.Mode >= ModeLast { + panic("bad mode") + } + var insns []*Insn + insns = append(insns, modeInsns[cfg.Mode][typeUser]...) + if cfg.Priv { + insns = append(insns, modeInsns[cfg.Mode][typePriv]...) + if cfg.Exec { + insns = append(insns, modeInsns[cfg.Mode][typeExec]...) + } + } + return insns +} + +func Generate(cfg *Config, r *rand.Rand) []byte { + var text []byte + for i := 0; i < cfg.Len; i++ { + insn := randInsn(cfg, r) + text = append(text, insn.Encode(cfg, r)...) + } + return text +} + +func Mutate(cfg *Config, r *rand.Rand, text []byte) []byte { + insns := split(cfg, text) + retry := false + for stop := false; !stop || retry || len(insns) == 0; stop = r.Intn(2) == 0 { + retry = false + switch x := r.Intn(100); { + case x < 10 && len(insns) != 0: + // delete instruction + i := r.Intn(len(insns)) + copy(insns[i:], insns[i+1:]) + insns = insns[:len(insns)-1] + case x < 40 && len(insns) != 0: + // replace instruction with another + insn := randInsn(cfg, r) + text1 := insn.Encode(cfg, r) + i := r.Intn(len(insns)) + insns[i] = text1 + case x < 70 && len(insns) != 0: + // mutate instruction + i := r.Intn(len(insns)) + text1 := insns[i] + for stop := false; !stop || len(text1) == 0; stop = r.Intn(2) == 0 { + switch x := r.Intn(100); { + case x < 5 && len(text1) != 0: + // delete byte + i := r.Intn(len(text1)) + copy(text1[i:], text1[i+1:]) + text1 = text1[:len(text1)-1] + case x < 40 && len(text1) != 0: + // replace a byte + i := r.Intn(len(text1)) + text1[i] = byte(r.Intn(256)) + case x < 70 && len(text1) != 0: + // flip a bit + i := r.Intn(len(text1)) + text1[i] ^= 1 << byte(r.Intn(8)) + default: + // insert a byte + i := r.Intn(len(text1) + 1) + text1 = append(text1, 0) + copy(text1[i+1:], text1[i:]) + text1[i] = byte(r.Intn(256)) + } + } + insns[i] = text1 + case len(insns) < cfg.Len: + // insert a new instruction + insn := randInsn(cfg, r) + text1 := insn.Encode(cfg, r) + i := r.Intn(len(insns) + 1) + insns = append(insns, nil) + copy(insns[i+1:], insns[i:]) + insns[i] = text1 + default: + retry = true + } + } + text = nil + for _, insn := range insns { + text = append(text, insn...) + } + return text +} + +func randInsn(cfg *Config, r *rand.Rand) *Insn { + var insns []*Insn + if cfg.Priv && cfg.Exec { + insns = modeInsns[cfg.Mode][r.Intn(3)] + } else if cfg.Priv { + insns = modeInsns[cfg.Mode][r.Intn(2)] + } else { + insns = modeInsns[cfg.Mode][typeUser] + } + return insns[r.Intn(len(insns))] +} + +func split(cfg *Config, text []byte) [][]byte { + text = append([]byte{}, text...) + var insns [][]byte + var bad []byte + for len(text) != 0 { + n, err := Decode(cfg.Mode, text) + if err != nil || n == 0 { + bad = append(bad, text[0]) + text = text[1:] + continue + } + if bad != nil { + insns = append(insns, bad) + bad = nil + } + insns = append(insns, text[:n]) + text = text[n:] + } + if bad != nil { + insns = append(insns, bad) + } + return insns +} + +func generateArg(cfg *Config, r *rand.Rand, size int) []byte { + v := generateInt(cfg, r, size) + arg := make([]byte, size) + for i := 0; i < size; i++ { + arg[i] = byte(v) + v >>= 8 + } + return arg +} + +func (insn *Insn) isCompatible(cfg *Config) bool { + if cfg.Mode < 0 || cfg.Mode >= ModeLast { + panic("bad mode") + } + if insn.Priv && !cfg.Priv { + return false + } + if insn.Pseudo && !cfg.Exec { + return false + } + if insn.Mode&(1<<uint(cfg.Mode)) == 0 { + return false + } + return true +} + +func generateInt(cfg *Config, r *rand.Rand, size int) uint64 { + if size != 1 && size != 2 && size != 4 && size != 8 { + panic("bad arg size") + } + var v uint64 + switch x := r.Intn(60); { + case x < 10: + v = uint64(r.Intn(1 << 4)) + case x < 20: + v = uint64(r.Intn(1 << 16)) + case x < 25: + v = uint64(r.Int63()) % (1 << 32) + case x < 30: + v = uint64(r.Int63()) % (1 << 63) + case x < 40: + v = specialNumbers[r.Intn(len(specialNumbers))] + if r.Intn(5) == 0 { + v += uint64(r.Intn(33)) - 16 + } + case x < 50 && len(cfg.MemRegions) != 0: + mem := cfg.MemRegions[r.Intn(len(cfg.MemRegions))] + switch x := r.Intn(100); { + case x < 25: + v = mem.Start + case x < 50: + v = mem.Start + mem.Size + case x < 75: + v = mem.Start + mem.Size/2 + default: + v = mem.Start + uint64(r.Int63())%mem.Size + } + if r.Intn(10) == 0 { + v += uint64(r.Intn(33)) - 16 + } + default: + v = uint64(r.Intn(1 << 8)) + } + if r.Intn(50) == 0 { + v = uint64(-int64(v)) + } + if r.Intn(50) == 0 && size != 1 { + v &^= 1<<12 - 1 + } + return v +} + +var specialNumbers = []uint64{0, 1 << 15, 1 << 16, 1 << 31, 1 << 32, 1 << 47, 1 << 47, 1 << 63} diff --git a/pkg/ifuzz/ifuzz_test.go b/pkg/ifuzz/ifuzz_test.go new file mode 100644 index 000000000..0d9a41c56 --- /dev/null +++ b/pkg/ifuzz/ifuzz_test.go @@ -0,0 +1,98 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +package ifuzz + +import ( + "encoding/hex" + "math/rand" + "testing" + "time" +) + +func TestMode(t *testing.T) { + all := make(map[*Insn]bool) + for mode := 0; mode < ModeLast; mode++ { + for priv := 0; priv < 2; priv++ { + for exec := 0; exec < 2; exec++ { + cfg := &Config{ + Mode: mode, + Priv: priv != 0, + Exec: exec != 0, + } + insns := ModeInsns(cfg) + t.Logf("mode=%v priv=%v exec=%v: %v instructions", mode, priv, exec, len(insns)) + for _, insn := range insns { + all[insn] = true + } + } + } + } + t.Logf("total: %v instructions", len(all)) +} + +func TestDecode(t *testing.T) { + seed := int64(time.Now().UnixNano()) + t.Logf("seed=%v", seed) + r := rand.New(rand.NewSource(seed)) + + for repeat := 0; repeat < 10; repeat++ { + for mode := 0; mode < ModeLast; mode++ { + cfg := &Config{ + Mode: mode, + Priv: true, + Exec: true, + } + failed := false + for _, insn := range ModeInsns(cfg) { + text0 := insn.Encode(cfg, r) + text := text0 + repeat: + size, err := Decode(mode, text) + if err != nil { + t.Errorf("decoding %v %v failed (mode=%v): %v", insn.Name, hex.EncodeToString(text), mode, err) + if len(text) != len(text0) { + t.Errorf("whole: %v", hex.EncodeToString(text0)) + } + failed = true + continue + } + if XedDecode != nil { + xedSize, xedErr := XedDecode(mode, text) + if xedErr != nil { + t.Errorf("xed decoding %v %v failed (mode=%v): %v", insn.Name, hex.EncodeToString(text), mode, xedErr) + if len(text) != len(text0) { + t.Errorf("whole: %v", hex.EncodeToString(text0)) + } + failed = true + continue + } + if size != xedSize { + t.Errorf("decoding %v %v failed (mode=%v): decoded %v/%v, xed decoded %v/%v", + insn.Name, hex.EncodeToString(text), mode, size, xedSize, size, len(text)) + if len(text) != len(text0) { + t.Errorf("whole: %v", hex.EncodeToString(text0)) + } + failed = true + continue + } + } + if insn.Pseudo && size >= 0 && size < len(text) { + text = text[size:] + goto repeat + } + if size != len(text) { + t.Errorf("decoding %v %v failed (mode=%v): decoded %v/%v", + insn.Name, hex.EncodeToString(text), mode, size, len(text)) + if len(text) != len(text0) { + t.Errorf("whole: %v", hex.EncodeToString(text0)) + } + failed = true + } + } + if failed { + return + } + } + } +} diff --git a/pkg/ifuzz/insns.go b/pkg/ifuzz/insns.go new file mode 100644 index 000000000..eb6e7313c --- /dev/null +++ b/pkg/ifuzz/insns.go @@ -0,0 +1,2175 @@ +// AUTOGENERATED FILE +package ifuzz + +var Insns = []*Insn{ + &Insn{Name: "FADD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FMUL", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUBR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIVR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FADD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FMUL", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUBR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIVR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FST", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSTPNCE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDENV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDCW", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNSTENV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNSTCW", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXCH", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXCH", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXCH", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNOP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCHS", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FABS", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FTST", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXAM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 5, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLD1", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDL2T", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDL2E", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDPI", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDLG2", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDLN2", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 5, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLDZ", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 6, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "F2XM1", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FYL2X", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FPTAN", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FPATAN", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXTRACT", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FPREM1", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 5, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDECSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 6, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FINCSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: 7, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FPREM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FYL2XP1", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSQRT", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSINCOS", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FRNDINT", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSCALE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 5, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSIN", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 6, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOS", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 7, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIADD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIMUL", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FICOM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FICOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISUB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISUBR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIDIV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIDIVR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVBE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVU", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FUCOMPP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FILD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISTTP", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIST", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: true, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVNB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVNE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVNBE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCMOVNU", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNCLEX", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNINIT", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSETPM287_NOP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FENI8087_NOP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDISI8087_NOP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FUCOMI", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMI", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FADD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FMUL", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUBR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIVR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUBR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIVR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FLD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISTTP", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FST", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FRSTOR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNSAVE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNSTSW", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FFREE", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FUCOM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FUCOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIADD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIMUL", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FICOM", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FICOMP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISUB", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISUBR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIDIV", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIDIVR", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FADDP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FMULP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMPP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUBRP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FSUBP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIVRP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FDIVP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FILD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISTTP", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FIST", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: true, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FBLD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FILD", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FBSTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FISTP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FFREEP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FNSTSW", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FUCOMIP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FCOMIP", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOT_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NEG_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NEG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IMUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DIV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IDIV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOT_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NEG_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NEG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IMUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DIV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IDIV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfe}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DEC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfe}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DEC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DEC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DEC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CALL_NEAR", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xe8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CALL_NEAR", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xe8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CALL_NEAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JMP_FAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SLDT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LLDT", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LTR", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VERR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VERW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LGDT", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LGDT", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SMSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LMSW", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTS_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMCLEAR", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMPTRLD", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMPTRST", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMXON", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG8B_LOCK", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG8B_LOCK", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG8B", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG8B", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG16B_LOCK", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG16B", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x71}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x71}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x71}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x72}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x72}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x72}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x73}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x73}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x73}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x73}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXSAVE", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXRSTOR", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXSAVE64", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FXRSTOR64", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LDMXCSR", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STMXCSR", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHNTA", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHT0", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHT1", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHT2", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x19}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMCALL", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMLAUNCH", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMRESUME", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMXOFF", Extension: "VTX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SGDT", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SGDT", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LIDT", Extension: "BASE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LIDT", Extension: "BASE", Mode: 14, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MONITOR", Extension: "SSE3", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MWAIT", Extension: "SSE3", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SIDT", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SIDT", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVLPG", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SWAPGS", Extension: "LONGMODE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDTSCP", Extension: "RDTSCP", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SFENCE", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLFLUSH", Extension: "CLFSH", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LFENCE", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MFENCE", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVHLPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVLPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVLHPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVHPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x0}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x13}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x19}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x19}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x1c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SBB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x1e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x1f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x20}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x20}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x21}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x21}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x23}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x24}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AND", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x25}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DAA", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x27}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DAS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x2f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x30}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x30}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x31}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x31}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x32}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x33}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x34}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XOR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x35}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AAA", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x37}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x38}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x39}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x3a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x3b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x3c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x3d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AAS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x3f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INC", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x40}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DEC", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x48}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x50}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSHA", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSHAD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POPA", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POPAD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BOUND", Extension: "BASE", Mode: 12, Priv: false, Pseudo: false, Opcode: []uint8{0x62}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BOUND", Extension: "BASE", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x62}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ARPL", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSXD", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IMUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IMUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_INSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_INSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_INSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_INSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_INSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_INSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_OUTSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_OUTSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUTSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_OUTSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_OUTSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUTSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_OUTSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_OUTSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUTSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JO", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JO", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNO", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNO", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JB", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JB", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNB", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNB", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JZ", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x74}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JZ", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x74}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNZ", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x75}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNZ", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x75}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JBE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x76}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JBE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x76}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNBE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x77}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNBE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x77}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JS", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNS", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JP", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNP", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JL", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JL", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNL", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNL", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JLE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JLE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNLE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNLE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x84}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x85}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x86}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x86}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x87}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x87}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x88}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x89}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LEA", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: 0, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAUSE", Extension: "PAUSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: 0, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: 0, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CBW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CDQE", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CWDE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CWD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CQO", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CDQ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CALL_FAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xff}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CALL_FAR", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 2, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FWAIT", Extension: "X87", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSHF", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSHFD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSHFQ", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POPF", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POPFD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0x9d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POPFQ", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x9d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SAHF", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LAHF", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x9f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -2, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -2, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -2, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -2, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa4}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa4}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_MOVSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_CMPSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_CMPSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_CMPSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_CMPSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_CMPSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_CMPSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_CMPSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_CMPSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "TEST", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xa9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STOSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STOSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STOSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_STOSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STOSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LODSB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LODSW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LODSD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REP_LODSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LODSQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_SCASB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_SCASB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SCASB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_SCASW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_SCASW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SCASW", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_SCASD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_SCASD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SCASD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPE_SCASQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "REPNE_SCASQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SCASQ", Extension: "LONGMODE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xb0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xb8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: -3, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RET_NEAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 2, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RET_NEAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LES", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xc4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LDS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xc5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ENTER", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 2, Imm2: 1, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LEAVE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RET_FAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xca}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 2, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RET_FAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xcb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INT3", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xcc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xcd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INTO", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xce}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IRET", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xcf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IRETD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xcf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IRETQ", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xcf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AAM", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xd4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AAD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xd5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SALC", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xd6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XLAT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xd7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPNE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPNE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe0}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPNE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPNE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOPE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe0}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LOOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JCXZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JECXZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JRCXZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IN", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IN", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xe7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JMP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xe9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JMP", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xe9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JMP_FAR", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xea}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 2, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JMP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xeb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IN", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xec}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IN", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xed}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xee}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "OUT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xef}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INT1", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "HLT", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLI", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STI", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xfd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LAR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LSL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SYSCALL", Extension: "LONGMODE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLTS", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SYSRET", Extension: "LONGMODE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVUPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVUPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVLPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x13}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UNPCKLPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UNPCKHPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVHPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x10}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x11}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSLDUP", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x12}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSHDUP", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x16}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVUPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x10}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVUPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x11}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVLPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x12}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVLPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x13}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UNPCKLPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x14}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UNPCKHPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x15}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVHPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x16}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVHPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x17}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSD_XMM", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x10}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSD_XMM", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x11}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVDDUP", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x12}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_CR", Extension: "BASE", Mode: 14, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -8, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_CR", Extension: "BASE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -8, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_CR", Extension: "BASE", Mode: 14, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x20}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -8, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_CR", Extension: "BASE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x20}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -8, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_DR", Extension: "BASE", Mode: 14, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x23}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_DR", Extension: "BASE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x23}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_DR", Extension: "BASE", Mode: 14, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x21}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOV_DR", Extension: "BASE", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x21}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: true, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "WRMSR", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x30}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDTSC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x31}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDMSR", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x32}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDPMC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x33}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SYSENTER", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x34}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SYSEXIT", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x35}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVO", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x40}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNO", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x41}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x42}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x43}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x44}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x45}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVBE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x46}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNBE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x47}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVMSKPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x50}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SQRTPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RSQRTPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x52}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCPPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x53}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ANDPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x54}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ANDNPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x55}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ORPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x56}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XORPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x57}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SQRTSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x51}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RSQRTSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x52}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RCPSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x53}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVMSKPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x50}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SQRTPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x51}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ANDPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x54}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ANDNPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x55}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ORPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x56}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XORPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x57}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SQRTSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x51}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLBW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLWD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLDQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x62}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKSSWB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x64}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x65}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x66}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKUSWB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x67}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLBW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x60}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLWD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x61}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x62}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKSSWB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x63}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x64}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x65}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x66}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKUSWB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x67}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSHUFW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x74}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x75}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x76}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "EMMS", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x77}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSHUFD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x70}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x74}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x75}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x76}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSHUFLW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x70}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSHUFHW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x70}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JO", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JO", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNO", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNO", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JB", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JB", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNB", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNB", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JZ", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x84}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JZ", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x84}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNZ", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x85}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNZ", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x85}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JBE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x86}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JBE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x86}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNBE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x87}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNBE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x87}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETO", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNO", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNB", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x94}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNZ", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x95}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETBE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNBE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CPUID", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BT", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb0}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb1}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPXCHG", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LSS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTR_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb3}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LFS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LGS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVZX", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVZX", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc0}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XADD_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc1}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XADD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PINSRW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PEXTRW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHUFPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc2}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc2}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PINSRW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc4}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PEXTRW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc5}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHUFPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMPSD_XMM", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc2}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULLW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVMSKB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADDSUBPD", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd0}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd1}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd2}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRLQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd3}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd4}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULLW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd5}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVMSKB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd7}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ2DQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd6}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADDSUBPS", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd0}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVDQ2Q", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd6}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAVGB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAVGW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHUW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAVGB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe0}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe1}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSRAD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe2}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAVGW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe3}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHUW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe4}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe5}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTPD2DQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe7}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTDQ2PD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe6}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPD2DQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe6}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULUDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMADDWD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSADBW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MASKMOVQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf1}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf2}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSLLQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf3}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULUDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf4}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMADDWD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf5}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSADBW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MASKMOVDQU", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf7}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LDDQU", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf0}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVD", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "WBINVD", Extension: "BASE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UD2", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVAPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVAPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPI2PS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTPS2PI", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPS2PI", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UCOMISS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "COMISS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSI2SS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2a}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSI2SS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2a}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTSS2SI", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2c}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTSS2SI", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2c}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSS2SI", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2d}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSS2SI", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2d}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVAPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x28}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVAPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x29}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPI2PD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTPD2PI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2c}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPD2PI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2d}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "UCOMISD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "COMISD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2f}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSI2SD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2a}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSI2SD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2a}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTSD2SI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2c}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTSD2SI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2c}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSD2SI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2d}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSD2SI", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2d}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x48}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x49}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x4a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x4b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x4c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x4d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVLE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x4e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CMOVNLE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x4f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADDPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MULPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPS2PD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTDQ2PS", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUBPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MINPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DIVPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MAXPS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADDSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x58}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MULSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x59}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSS2SD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5a}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTTPS2DQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5b}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUBSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5c}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MINSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5d}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DIVSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5e}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MAXSS", Extension: "SSE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5f}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADDPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x58}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MULPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x59}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPD2PS", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTPS2DQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUBPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5c}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MINPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5d}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DIVPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MAXPD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5f}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADDSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x58}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MULSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x59}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CVTSD2SS", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5a}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SUBSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5c}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MINSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5d}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DIVSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5e}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MAXSD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5f}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHBW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHWD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHDQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKSSDW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "SSE2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "SSE2", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "SSE2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "SSE2", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "MMX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "MMX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "MMX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVD", Extension: "MMX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "SSE2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "SSE2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "MMX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "MMX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVQ", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHBW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x68}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHWD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x69}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKSSDW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKLQDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6c}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUNPCKHQDQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6d}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVDQU", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6f}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVDQU", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7f}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMREAD", Extension: "VTX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMREAD", Extension: "VTX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMWRITE", Extension: "VTX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMWRITE", Extension: "VTX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "HADDPD", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7c}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "HSUBPD", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7d}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVDQA", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7f}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVDQA", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x6f}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "HADDPS", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7c}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "HSUBPS", Extension: "SSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x7d}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x88}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JS", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x88}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNS", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x89}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNS", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x89}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JP", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNP", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNP", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JL", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JL", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNL", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNL", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JLE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JLE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNLE", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "JNLE", Extension: "BASE", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x8f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x9b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x9d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETLE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SETNLE", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x9f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PUSH", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RSM", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xaa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTS_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xab}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTS", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xab}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHRD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xac}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHRD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xad}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHLD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHLD", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xa5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "IMUL", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xaf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTC_LOCK", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbb}, Prefix: []uint8{0xf0}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BTC", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BSF", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BSR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSX", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVSX", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BSWAP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -1, Srm: true, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBUSB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBUSW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINUB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAND", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDUSB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDUSW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXUB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PANDN", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBUSB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd8}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBUSW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd9}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINUB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xda}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAND", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdb}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDUSB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdc}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDUSW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdd}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXUB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xde}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PANDN", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xdf}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBSB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBSW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINSW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xea}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POR", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xeb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDSB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xec}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDSW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xed}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXSW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xee}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PXOR", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xef}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBSB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe8}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBSW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe9}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINSW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xea}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POR", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xeb}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDSB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xec}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDSW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xed}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXSW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xee}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PXOR", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xef}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDB", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDW", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDD", Extension: "MMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf8}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf9}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfa}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSUBQ", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfb}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDB", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfc}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDW", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfd}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PADDD", Extension: "SSE2", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xfe}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHADDW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHADDW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHADDD", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHADDD", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x2}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHADDSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHADDSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHSUBW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHSUBW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x5}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHSUBD", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHSUBD", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHSUBSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHSUBSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x7}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMADDUBSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMADDUBSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x4}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHRSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHRSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xb}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSHUFB", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSHUFB", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x0}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSIGNB", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSIGNB", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x8}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSIGNW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSIGNW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x9}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSIGND", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSIGND", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xa}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PALIGNR", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PALIGNR", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xf}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PABSB", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PABSB", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1c}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PABSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PABSW", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1d}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PABSD", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PABSD", Extension: "SSSE3", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x1e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "POPCNT", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xb8}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPGTQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x37}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CRC32", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf0}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CRC32", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf1}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BLENDPD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xd}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BLENDPS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xc}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BLENDVPD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x15}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BLENDVPS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x14}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPEQQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x29}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DPPD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x41}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "DPPS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x40}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTDQA", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x2a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "EXTRACTPS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x17}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INSERTPS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x21}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MPSADBW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x42}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PACKUSDW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x2b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PBLENDW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xe}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PBLENDVB", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x10}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PEXTRB", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x14}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PEXTRW_SSE4", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x15}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PEXTRQ", Extension: "SSE4", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x16}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PEXTRD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x16}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PINSRB", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x20}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PINSRD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x22}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PINSRQ", Extension: "SSE4", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x22}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROUNDPD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x9}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROUNDPS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x8}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROUNDSD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xb}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ROUNDSS", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xa}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PTEST", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x17}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PHMINPOSUW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x41}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXSB", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3c}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXSD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3d}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXUD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3f}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMAXUW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3e}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINSB", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x38}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINSD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x39}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINUD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMINUW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x3a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULLD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x40}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULDQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x28}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVSXBW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x20}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVSXBD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x21}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVSXBQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x22}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVSXWD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x23}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVSXWQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x24}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVSXDQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x25}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVZXBW", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x30}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVZXBD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x31}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVZXBQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x32}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVZXWD", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x33}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVZXWQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x34}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMOVZXDQ", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x35}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPESTRI", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x61}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPESTRI", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x61}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPISTRI", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x63}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPISTRI", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x63}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPESTRM", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x60}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPESTRM", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x60}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCMPISTRM", Extension: "SSE4", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x62}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XGETBV", Extension: "XSAVE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSETBV", Extension: "XSAVE", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVE", Extension: "XSAVE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XRSTOR", Extension: "XSAVE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVE64", Extension: "XSAVE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XRSTOR64", Extension: "XSAVE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVBE", Extension: "MOVBE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVBE", Extension: "MOVBE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "GETSEC", Extension: "SMX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x37}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AESKEYGENASSIST", Extension: "AES", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xdf}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AESENC", Extension: "AES", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xdc}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AESENCLAST", Extension: "AES", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xdd}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AESDEC", Extension: "AES", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xde}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AESDECLAST", Extension: "AES", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xdf}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "AESIMC", Extension: "AES", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xdb}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PCLMULQDQ", Extension: "PCLMULQDQ", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0x44}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVEPT", Extension: "VTX", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x80}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVEPT", Extension: "VTX", Mode: 2, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x80}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVVPID", Extension: "VTX", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x81}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVVPID", Extension: "VTX", Mode: 2, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x81}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCH_EXCLUSIVE", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHW", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCH_RESERVED", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHW", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCH_RESERVED", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCH_RESERVED", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCH_RESERVED", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCH_RESERVED", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP2", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0x66, 0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP3", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1f, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP4", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1f, 0x40, 0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "FEMMS", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PI2FW", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xc}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PI2FD", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xd}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PF2IW", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x1c}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PF2ID", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x1d}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFNACC", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x8a}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFPNACC", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x8e}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFCMPGE", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x90}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFMIN", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x94}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFRCP", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x96}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFSQRT", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x97}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFSUB", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x9a}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFADD", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0x9e}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFCMPGT", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xa0}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFMAX", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xa4}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFCPIT1", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xa6}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFRSQIT1", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xa7}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFSUBR", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xaa}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFACC", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xae}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFCMPEQ", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xb0}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFMUL", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xb4}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PFRCPIT2", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xb6}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PMULHRW", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xb7}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PSWAPD", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xbb}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PAVGUSB", Extension: "3DNOW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xf}, Prefix: []uint8(nil), Suffix: []uint8{0xbf}, Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SYSCALL_AMD", Extension: "BASE", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SYSRET_AMD", Extension: "BASE", Mode: 14, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMRUN", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 0, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMMCALL", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMLOAD", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VMSAVE", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STGI", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLGI", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 5, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SKINIT", Extension: "SVM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 6, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVLPGA", Extension: "SVM", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: 7, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "EXTRQ", Extension: "SSE4a", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x78}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 1, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "EXTRQ", Extension: "SSE4a", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x79}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INSERTQ", Extension: "SSE4a", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x78}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 1, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INSERTQ", Extension: "SSE4a", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x79}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTSD", Extension: "SSE4a", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2b}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "MOVNTSS", Extension: "SSE4a", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x2b}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LZCNT", Extension: "AMD", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbd}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLZERO", Extension: "CLZERO", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VPMACSSWW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x85}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSSWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x86}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSSDQL", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x87}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSWW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x95}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSDQL", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCMOV", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCMOV", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCMOV", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCMOV", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPPERM", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPPERM", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMADCSSWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMADCSWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSSDD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSSDQH", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSDD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMACSDQH", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xcc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xcd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xce}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xcf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMUB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xec}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMUW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xed}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMUD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xee}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPCOMUQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xef}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x8, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFRCZPS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFRCZPS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x80}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFRCZPD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFRCZPD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x81}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFRCZSS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x82}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFRCZSD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x83}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPROTQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x94}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x94}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x95}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x95}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHLQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDBW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDBD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDBQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDWQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDUBW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDUBD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDUBQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDUWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDUWQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHSUBBW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHSUBWD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHSUBDQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAW", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPSHAQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDDQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xcb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPHADDUDQ", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BEXTR_XOP", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0xa, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLCFILL", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSFILL", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLCS", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "TZMSK", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLCIC", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSIC", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "T1MSKC", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLCMSK", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLCI", Extension: "TBM", Mode: 7, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "LLWPCB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "SLWPCB", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0x9, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "LWPINS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0xa, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "LWPVAL", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 4, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x8f, VexMap: 0xa, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADDSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBPD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBSS", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUBSD", Extension: "FMA4", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x48}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x48}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x48}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PS", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x48}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x49}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x49}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x49}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMIL2PD", Extension: "XOP", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x49}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "XSAVEOPT", Extension: "XSAVEOPT", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVEOPT64", Extension: "XSAVEOPT", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMK", Extension: "MPX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCL", Extension: "MPX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCL", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCL", Extension: "MPX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCU", Extension: "MPX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCU", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCU", Extension: "MPX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCN", Extension: "MPX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCN", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDCN", Extension: "MPX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0xf2}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 12, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 12, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDMOV", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDLDX", Extension: "MPX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDLDX", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 0, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDLDX", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDLDX", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 2, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDSTX", Extension: "MPX", Mode: 14, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDSTX", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 0, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDSTX", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BNDSTX", Extension: "MPX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 2, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "NOP", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1b}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA1MSG1", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xc9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA1MSG2", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xca}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA1NEXTE", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xc8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA1RNDS4", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x3a, 0xcc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA256MSG1", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xcc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA256MSG2", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xcd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "SHA256RNDS2", Extension: "SHA", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xcb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDRAND", Extension: "RDRAND", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDFSBASE", Extension: "RDWRFSGS", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 0, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDGSBASE", Extension: "RDWRFSGS", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "WRFSBASE", Extension: "RDWRFSGS", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "WRGSBASE", Extension: "RDWRFSGS", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVES", Extension: "XSAVES", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVES64", Extension: "XSAVES", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 5, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XRSTORS", Extension: "XSAVES", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XRSTORS64", Extension: "XSAVES", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVEC", Extension: "XSAVEC", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XSAVEC64", Extension: "XSAVEC", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VADDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VADDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VADDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VADDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VADDSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VADDSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VADDSUBPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VADDSUBPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VADDSUBPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VADDSUBPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VANDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x54}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VANDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x54}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VANDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x54}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VANDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x54}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VANDNPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x55}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VANDNPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x55}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VANDNPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x55}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VANDNPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x55}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VBLENDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCMPPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCMPPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCMPPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCMPPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCMPSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCMPSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCOMISD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCOMISS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCVTDQ2PD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTDQ2PD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTDQ2PS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCVTDQ2PS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCVTPD2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTPD2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTTPD2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTTPD2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPD2PS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPD2PS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPS2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPS2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTTPS2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTTPS2DQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTPS2PD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCVTPS2PD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VCVTSD2SI", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSD2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSD2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTTSD2SI", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTTSD2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTTSD2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSS2SI", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTSS2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTSS2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTTSS2SI", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTTSS2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTTSS2SI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTSD2SS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSI2SD", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSI2SD", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSI2SD", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VCVTSI2SS", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTSI2SS", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTSI2SS", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VCVTSS2SD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VDIVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VDIVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VDIVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VDIVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VDIVSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VDIVSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VEXTRACTF128", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x19}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VDPPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x41}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VDPPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x40}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VDPPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x40}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VEXTRACTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VZEROALL", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x77}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VZEROUPPER", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x77}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: false, Mod: -100, Reg: -100, Rm: -100, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VHADDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VHADDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VHADDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VHADDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VHSUBPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VHSUBPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VHSUBPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VHSUBPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VPERMILPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMILPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERM2F128", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x19}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTF128", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VINSERTF128", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VINSERTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x21}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VLDDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VLDDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPTEST", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPTEST", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VTESTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VTESTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VTESTPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VTESTPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMAXPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMAXPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMAXPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMAXPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMAXSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMAXSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMINPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMINPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMINPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMINPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMINSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMINSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVAPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVAPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVAPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVAPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVAPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVAPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVAPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVAPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVD", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVD", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVD", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVD", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVQ", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x6e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVQ", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVDDUP", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMOVDDUP", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMOVDQA", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVDQA", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVDQA", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVDQA", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSHDUP", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSHDUP", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSLDUP", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSLDUP", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VPOR", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xeb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPAND", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPANDN", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPXOR", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xef}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPABSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPABSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPABSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHMINPOSUW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x41}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSHUFD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSHUFHW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VPSHUFLW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VPACKSSWB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKSSDW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKUSWB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x67}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKUSDW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xec}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xed}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDUSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDUSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPAVGB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPAVGW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x74}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x75}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x76}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x64}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x65}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x66}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x37}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHADDW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHADDD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHADDSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHSUBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHSUBD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHSUBSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULHUW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULHRSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULHW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULLW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULLD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x40}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULUDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSADBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSHUFB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSIGNB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSIGNW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSIGND", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBUSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBUSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHWD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHQDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLWD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x62}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLQDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVLHPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVHLPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPALIGNR", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBLENDW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VROUNDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VROUNDPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VROUNDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VROUNDPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VROUNDSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VROUNDSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSHUFPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSHUFPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSHUFPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSHUFPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VRCPPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x53}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VRCPPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x53}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VRCPSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x53}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VRSQRTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x52}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VRSQRTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x52}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VRSQRTSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x52}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VSQRTPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSQRTPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSQRTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSQRTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSQRTSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VSQRTSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x51}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VUNPCKHPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VUNPCKHPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VUNPCKHPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VUNPCKHPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSUBPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSUBPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VSUBPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSUBPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSUBSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VSUBSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMULPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMULPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMULPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMULPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMULSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMULSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VORPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x56}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VORPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x56}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VORPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x56}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VORPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x56}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMAXSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xee}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXUB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXUW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXUD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINSB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x38}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xea}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x39}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINUB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINUW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINUD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMADDWD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMADDUBSW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMPSADBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x42}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VUCOMISD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VUCOMISS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VUNPCKLPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VUNPCKLPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VUNPCKLPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VUNPCKLPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VXORPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x57}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VXORPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x57}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VXORPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x57}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VXORPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x57}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VMOVSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMOVSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMOVSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMOVSD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 0, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VMOVUPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVUPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVUPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVUPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVUPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVUPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVUPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x10}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVUPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x11}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVLPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVLPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x13}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVLPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x12}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVLPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x13}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVHPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVHPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVHPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVHPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x17}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVMSKPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x50}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVMSKPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x50}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVMSKPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x50}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVMSKPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x50}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPMOVMSKB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x20}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXBD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x21}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXBQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXWD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x23}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXWQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x24}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x25}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXBW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x30}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXBD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x31}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXBQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x32}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXWD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x33}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXWQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x34}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x35}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPEXTRB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x14}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPEXTRW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x15}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPEXTRW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPEXTRQ", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPEXTRD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPINSRB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x20}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPINSRW", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xc4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPINSRD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPINSRQ", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPESTRI", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPESTRI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPESTRI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPISTRI", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPISTRI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPISTRI", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPESTRM", Extension: "AVX", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPESTRM", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPESTRM", Extension: "AVX", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPISTRM", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x62}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMASKMOVDQU", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VLDMXCSR", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VSTMXCSR", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VPBLENDVB", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDVPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBLENDVPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTDQA", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: -1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VMOVNTDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTPD", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTPS", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 0, Avx2Gather: false}, + &Insn{Name: "VAESKEYGENASSIST", Extension: "AVXAES", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VAESENC", Extension: "AVXAES", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VAESENCLAST", Extension: "AVXAES", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VAESDEC", Extension: "AVXAES", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VAESDECLAST", Extension: "AVXAES", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VAESIMC", Extension: "AVXAES", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCLMULQDQ", Extension: "AVX", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x44}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPH2PS", Extension: "F16C", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x13}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPH2PS", Extension: "F16C", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x13}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPS2PH", Extension: "F16C", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VCVTPS2PH", Extension: "F16C", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VGATHERDPD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERDPD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERDPS", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERDPS", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x92}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERQPD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERQPD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERQPS", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VGATHERQPS", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x93}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERDQ", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERDQ", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERDD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERDD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x90}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERQQ", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERQQ", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERQD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPGATHERQD", Extension: "AVX2GATHER", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x91}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: true}, + &Insn{Name: "VPABSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPABSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPABSD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHMINPOSUW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x41}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKSSWB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x63}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKSSDW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKUSWB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x67}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPACKUSDW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xec}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xed}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDUSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPADDUSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPAVGB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPAVGW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x74}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x75}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x76}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPEQQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x29}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x64}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x65}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x66}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPCMPGTQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x37}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHADDW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHADDD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHADDSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHSUBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHSUBD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPHSUBSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMADDWD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMADDUBSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xee}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXSD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXUB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xde}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXUW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMAXUD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x38}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xea}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINSD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x39}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINUB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xda}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINUW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMINUD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x3b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULHUW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULHRSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULHW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULLW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULLD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x40}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULUDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf4}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMULDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x28}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSADBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSHUFB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSIGNB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSIGNW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSIGND", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBUSB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBUSW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSUBQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xfb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x68}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHWD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x69}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKHQDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x60}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLWD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x61}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x62}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPUNPCKLQDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x6c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPALIGNR", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBLENDW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMPSADBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x42}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPOR", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xeb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPAND", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPANDN", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xdf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPXOR", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xef}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBLENDVB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x4c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVMSKB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xd7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSHUFD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSHUFHW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 2, Avx2Gather: false}, + &Insn{Name: "VPSHUFLW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x70}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VPSRLDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x71}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x72}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x73}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x1, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x20}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXBD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x21}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXBQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x22}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXWD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x23}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXWQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x24}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVSXDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x25}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXBW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x30}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXBD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x31}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXBQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x32}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXWD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x33}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXWQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x34}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMOVZXDQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x35}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VINSERTI128", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x38}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VEXTRACTI128", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x39}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPMASKMOVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x8e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERM2I128", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x46}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMPD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x36}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPERMPS", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x16}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBLENDD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBLENDD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTB", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x78}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTW", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x79}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x58}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPBROADCASTQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x59}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTSS", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTSS", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x18}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTSD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x19}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VBROADCASTI128", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x5a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "TZCNT", Extension: "BMI1", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbc}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BSF", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbc}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVPCID", Extension: "INVPCID", Mode: 1, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x82}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "INVPCID", Extension: "INVPCID", Mode: 2, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0x82}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "LZCNT", Extension: "LZCNT", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbd}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "BSR", Extension: "BASE", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xbd}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PDEP", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "PDEP", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "PDEP", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "PEXT", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "PEXT", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "PEXT", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "ANDN", Extension: "BMI1", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "ANDN", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "ANDN", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf2}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSR", Extension: "BMI1", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSR", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSR", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSMSK", Extension: "BMI1", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSMSK", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSMSK", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSI", Extension: "BMI1", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSI", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BLSI", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf3}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 3, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BZHI", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BZHI", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BZHI", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf5}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BEXTR", Extension: "BMI1", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BEXTR", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "BEXTR", Extension: "BMI1", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 0, Avx2Gather: false}, + &Insn{Name: "SHLX", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "SHLX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "SHLX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "SARX", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "SARX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "SARX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 2, Avx2Gather: false}, + &Insn{Name: "SHRX", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "SHRX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "SHRX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "MULX", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "MULX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "MULX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 3, Avx2Gather: false}, + &Insn{Name: "RORX", Extension: "BMI2", Mode: 2, Priv: false, Pseudo: false, Opcode: []uint8{0xf0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "RORX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "RORX", Extension: "BMI2", Mode: 1, Priv: false, Pseudo: false, Opcode: []uint8{0xf0}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x3, VexL: -1, VexNoR: true, VexP: 3, Avx2Gather: false}, + &Insn{Name: "VPSLLVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x47}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x47}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x47}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSLLVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x47}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x45}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x45}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x45}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRLVQ", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x45}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x46}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VPSRAVD", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x46}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMOVNTDQA", Extension: "AVX2", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x2a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: true, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VMFUNC", Extension: "VMFUNC", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 4, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XBEGIN", Extension: "RTM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 0, Srm: false, NoSibDisp: false, Imm: -1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XEND", Extension: "RTM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 5, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XABORT", Extension: "RTM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xc6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: 0, Srm: false, NoSibDisp: false, Imm: 1, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "XTEST", Extension: "RTM", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 6, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "VFMADD132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x98}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD132SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD132SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x99}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD213SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD213SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb8}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD231SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADD231SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb9}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x96}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMADDSUB231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb6}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x97}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xa7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUBADD231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xb7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9a}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB132SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB132SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9b}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xaa}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB213SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB213SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xab}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xba}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB231SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFMSUB231SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbb}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9c}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD132SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD132SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9d}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xac}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD213SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD213SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xad}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbc}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD231SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMADD231SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB132PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB132PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9e}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB132SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB132SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0x9f}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB213PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB213PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xae}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB213SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB213SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xaf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB231PD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: -1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB231PS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbe}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 1, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB231SD", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "VFNMSUB231SS", Extension: "FMA", Mode: 3, Priv: false, Pseudo: false, Opcode: []uint8{0xbf}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0xc4, VexMap: 0x2, VexL: 0, VexNoR: false, VexP: 1, Avx2Gather: false}, + &Insn{Name: "ADCX", Extension: "BDW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADCX", Extension: "BDW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf6}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADOX", Extension: "BDW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf6}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: -1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ADOX", Extension: "BDW", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x38, 0xf6}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: -1, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 1, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDSEED", Extension: "RDSEED", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xc7}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLAC", Extension: "SMAP", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: 2, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "STAC", Extension: "SMAP", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: 3, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ENCLU", Extension: "SGX", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 2, Rm: 7, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "ENCLS", Extension: "SGX", Mode: 15, Priv: true, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 1, Rm: 7, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "RDPKRU", Extension: "PKU", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 6, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "WRPKRU", Extension: "PKU", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0x1}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: 3, Reg: 5, Rm: 7, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLWB", Extension: "CLWB", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 6, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "CLFLUSHOPT", Extension: "CLFLUSHOPT", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0x66}, Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 7, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PTWRITE", Extension: "PT", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xae}, Prefix: []uint8{0xf3}, Suffix: []uint8(nil), Modrm: true, Mod: -1, Reg: 4, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: true, No66Prefix: true, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, + &Insn{Name: "PREFETCHWT1", Extension: "PREFETCHWT1", Mode: 15, Priv: false, Pseudo: false, Opcode: []uint8{0xf, 0xd}, Prefix: []uint8(nil), Suffix: []uint8(nil), Modrm: true, Mod: -3, Reg: 2, Rm: -1, Srm: false, NoSibDisp: false, Imm: 0, Imm2: 0, NoRepPrefix: false, No66Prefix: false, Rexw: 0, Mem32: false, Mem16: false, Vex: 0x0, VexMap: 0x0, VexL: 0, VexNoR: false, VexP: -1, Avx2Gather: false}, +} diff --git a/pkg/ifuzz/pseudo.go b/pkg/ifuzz/pseudo.go new file mode 100644 index 000000000..75cdb8c0b --- /dev/null +++ b/pkg/ifuzz/pseudo.go @@ -0,0 +1,792 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +package ifuzz + +import ( + "math/rand" +) + +func initPseudo() { + Insns = append(Insns, &Insn{ + Name: "PSEUDO_RDMSR", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + msr := msrs[r.Intn(len(msrs))] + gen.mov32(regECX, msr) + gen.byte(0x0f, 0x32) // rdmsr + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_WRMSR", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + msr := msrs[r.Intn(len(msrs))] + v := generateInt(cfg, r, 8) + gen.mov32(regECX, msr) + gen.mov32(regEAX, uint32(v>>0)) + gen.mov32(regEDX, uint32(v>>32)) + gen.byte(0x0f, 0x30) // wrmsr + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_PCI_READ", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + addr, port, size := pciAddrPort(r) + gen.out32(0xcf8, addr) + gen.in(port, size) + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_PCI_WRITE", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + addr, port, size := pciAddrPort(r) + val := generateInt(cfg, r, 4) + gen.out32(0xcf8, addr) + gen.out(port, uint32(val), size) + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_PORT_READ", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + port := ports[r.Intn(len(ports))] + gen.in(port, r.Intn(3)) + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_PORT_WRITE", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + port := ports[r.Intn(len(ports))] + val := generateInt(cfg, r, 4) + gen.out(port, uint32(val), r.Intn(3)) + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_XOR_CR", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + cr := controlRegisters[r.Intn(len(controlRegisters))] + var v uint32 + if cr == 8 { + v = uint32(r.Intn(15) + 1) + } else { + bit := controlRegistersBits[cr][r.Intn(len(controlRegistersBits[cr]))] + v = 1 << bit + } + gen.readCR(cr) + gen.xor32(regEAX, v) + gen.writeCR(cr) + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_XOR_EFER", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + gen.mov32(regECX, eferMSR) + gen.byte(0x0f, 0x32) // rdmsr + bit := eferBits[r.Intn(len(eferBits))] + gen.xor32(regEAX, 1<<bit) + gen.byte(0x0f, 0x30) // wrmsr + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_SET_BREAK", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + br := uint8(r.Intn(4)) + loc := uint32(r.Intn(4)) + typ := uint32(r.Intn(16)) + addr := generateInt(cfg, r, 8) + if cfg.Mode == ModeLong64 { + gen.mov64(regRAX, addr) + } else { + gen.mov32(regEAX, uint32(addr)) + } + gen.writeDR(br) + gen.readDR(7) + gen.xor32(regEAX, loc<<(br*2)|typ<<(16+br*4)) + gen.writeDR(7) + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_LOAD_SEG", + Mode: 1<<ModeLast - 1, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + sel := randSelector(r) + if cfg.Mode == ModeReal16 { + sel = uint16(generateInt(cfg, r, 8)) >> 4 + } + reg := uint8(r.Intn(6)) + gen.mov16(regAX, sel) + gen.byte(0x8e, 0xc0|(reg<<3)) // mov %ax, %seg + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_FAR_JMP", + Mode: 1<<ModeLong64 | 1<<ModeProt32 | 1<<ModeProt16, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + sel := randSelector(r) + off := generateInt(cfg, r, 4) + if cfg.Mode == ModeLong64 { + gen.mov32toSPaddr(uint32(sel), 0) + gen.mov32toSPaddr(uint32(off), 2) + if r.Intn(2) == 0 { + gen.byte(0xff, 0x2c, 0x24) // ljmp (%rsp) + } else { + gen.byte(0xff, 0x1c, 0x24) // lcall (%rsp) + } + } else { + if r.Intn(2) == 0 { + gen.byte(0xea) // ljmp $imm16, $imm16/32 + } else { + gen.byte(0x9a) // lcall $imm16, $imm16/32 + } + if cfg.Mode == ModeProt16 { + gen.imm16(uint16(off)) + } else { + gen.imm32(uint32(off)) + } + gen.imm16(sel) + } + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_LTR_LLDT", + Mode: 1<<ModeLong64 | 1<<ModeProt32 | 1<<ModeProt16, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + sel := randSelector(r) + gen.mov16(regAX, sel) + if r.Intn(2) == 0 { + gen.byte(0x0f, 0x00, 0xd8) // ltr %ax + } else { + gen.byte(0x0f, 0x00, 0xd0) // lldt %ax + } + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_LGIDT", + Mode: 1<<ModeLong64 | 1<<ModeProt32 | 1<<ModeProt16, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + limit := uint32(generateInt(cfg, r, 2)) + base := uint32(generateInt(cfg, r, 4)) + gen.mov32toSPaddr(limit, 0) + gen.mov32toSPaddr(base, 2) + gen.mov32toSPaddr(0, 6) + gen.addr32() + if r.Intn(2) == 0 { + gen.byte(0x0f, 0x01, 0x14, 0x24) // lgdt (%rsp) + } else { + gen.byte(0x0f, 0x01, 0x1c, 0x24) // lidt (%rsp) + } + return gen.text + }, + }) + Insns = append(Insns, &Insn{ + Name: "PSEUDO_HYPERCALL", + Mode: 1<<ModeLong64 | 1<<ModeProt32 | 1<<ModeProt16, + Priv: true, + Pseudo: true, + generator: func(cfg *Config, r *rand.Rand) []byte { + gen := makeGen(cfg, r) + switch r.Intn(2) { + case 0: + gen.mov32(regEAX, 1) // KVM_HC_VAPIC_POLL_IRQ + case 1: + gen.mov32(regEAX, 5) // KVM_HC_KICK_CPU + gen.mov32(regECX, uint32(generateInt(cfg, r, 4))) // APIC ID + default: + panic("bad") + } + if r.Intn(2) == 0 { + gen.byte(0x0f, 0x01, 0xd9) // vmmcall + } else { + gen.byte(0x0f, 0x01, 0xc1) // vmcall + } + return gen.text + }, + }) +} + +const ( + regAL = iota + regAX + regEAX + regRAX + regCL + regCX + regECX + regRCX + regDL + regDX + regEDX + regRDX +) + +type generator struct { + mode int + r *rand.Rand + text []byte +} + +func makeGen(cfg *Config, r *rand.Rand) *generator { + return &generator{ + mode: cfg.Mode, + r: r, + } +} + +func (gen *generator) byte(v ...uint8) { + gen.text = append(gen.text, v...) +} + +func (gen *generator) imm16(v uint16) { + gen.byte(byte(v>>0), byte(v>>8)) +} + +func (gen *generator) imm32(v uint32) { + gen.byte(byte(v>>0), byte(v>>8), byte(v>>16), byte(v>>24)) +} + +func (gen *generator) imm64(v uint64) { + gen.byte(byte(v>>0), byte(v>>8), byte(v>>16), byte(v>>24), + byte(v>>32), byte(v>>40), byte(v>>48), byte(v>>56)) +} + +func (gen *generator) operand16() { + switch gen.mode { + case ModeLong64, ModeProt32: + gen.byte(0x66) + case ModeProt16, ModeReal16: + default: + panic("bad mode") + } +} + +func (gen *generator) operand32() { + switch gen.mode { + case ModeLong64, ModeProt32: + case ModeProt16, ModeReal16: + gen.byte(0x66) + default: + panic("bad mode") + } +} + +func (gen *generator) addr32() { + switch gen.mode { + case ModeLong64, ModeProt32: + case ModeProt16, ModeReal16: + gen.byte(0x67) + default: + panic("bad mode") + } +} + +func (gen *generator) mov8(reg int, v uint8) { + switch reg { + case regAL: + gen.byte(0xb0) + case regCL: + gen.byte(0xb1) + case regDL: + gen.byte(0xb2) + default: + panic("unknown register") + } + gen.byte(v) +} + +func (gen *generator) mov16(reg int, v uint16) { + gen.operand16() + switch reg { + case regAX: + gen.byte(0xb8) + case regCX: + gen.byte(0xb9) + case regDX: + gen.byte(0xba) + default: + panic("unknown register") + } + gen.imm16(v) +} + +func (gen *generator) mov32(reg int, v uint32) { + gen.operand32() + switch reg { + case regEAX: + gen.byte(0xb8) + case regECX: + gen.byte(0xb9) + case regEDX: + gen.byte(0xba) + default: + panic("unknown register") + } + gen.imm32(v) +} + +func (gen *generator) mov64(reg int, v uint64) { + if gen.mode != ModeLong64 { + panic("bad mode") + } + gen.byte(0x48) + switch reg { + case regRAX: + gen.byte(0xb8) + case regRCX: + gen.byte(0xb9) + case regRDX: + gen.byte(0xba) + default: + panic("unknown register") + } + gen.imm64(v) +} + +// movl $v, off(%rsp) +func (gen *generator) mov32toSPaddr(v uint32, off uint8) { + gen.addr32() + gen.operand32() + gen.byte(0xc7, 0x44, 0x24, off) + gen.imm32(v) +} + +func (gen *generator) xor32(reg int, v uint32) { + gen.operand32() + switch reg { + case regEAX: + gen.byte(0x35) + default: + panic("unknown register") + } + gen.imm32(v) +} + +func (gen *generator) readCR(cr uint8) { + if cr < 8 { + // mov %crN, %eax/%rax + gen.byte(0x0f, 0x20, 0xc0|cr<<3) + } else if cr < 16 { + // mov %crN, %eax/%rax + gen.byte(0x44, 0x0f, 0x20, 0xc0|(cr-8)<<3) + } else { + panic("bad cr") + } +} + +func (gen *generator) writeCR(cr uint8) { + if cr < 8 { + // mov %eax/%rax, %crN + gen.byte(0x0f, 0x22, 0xc0|cr<<3) + } else if cr < 16 { + // mov %eax/%rax, %crN + gen.byte(0x44, 0x0f, 0x22, 0xc0|(cr-8)<<3) + } else { + panic("bad cr") + } +} + +func (gen *generator) readDR(dr uint8) { + if dr >= 8 { + panic("bad dr") + } + // mov %drN, %eax/%rax + gen.byte(0x0f, 0x21, 0xc0|dr<<3) +} + +func (gen *generator) writeDR(dr uint8) { + if dr >= 8 { + panic("bad dr") + } + // mov %eax/%rax, %drN + gen.byte(0x0f, 0x23, 0xc0|dr<<3) +} + +func (gen *generator) in8(port uint16) { + gen.mov16(regDX, port) + gen.byte(0xec) // in %al, %dx +} + +func (gen *generator) in16(port uint16) { + gen.mov16(regDX, port) + gen.operand16() + gen.byte(0xed) // in %ax, %dx +} + +func (gen *generator) in32(port uint16) { + gen.mov16(regDX, port) + gen.operand32() + gen.byte(0xed) // in %eax, %dx +} + +func (gen *generator) in(port uint16, size int) { + switch size { + case 0: + gen.in8(port) + case 1: + gen.in16(port) + case 2: + gen.in32(port) + default: + panic("bad size") + } +} + +func (gen *generator) out8(port uint16, v uint8) { + gen.mov16(regDX, port) + gen.mov8(regAL, v) + gen.byte(0xee) // out %dx, %al +} + +func (gen *generator) out16(port uint16, v uint16) { + gen.mov16(regDX, port) + gen.mov16(regAX, v) + gen.operand16() + gen.byte(0xef) // out %dx, %ax +} + +func (gen *generator) out32(port uint16, v uint32) { + gen.mov16(regDX, port) + gen.mov32(regEAX, v) + gen.operand32() + gen.byte(0xef) // out %dx, %eax +} + +func (gen *generator) out(port uint16, v uint32, size int) { + switch size { + case 0: + gen.out8(port, uint8(v)) + case 1: + gen.out16(port, uint16(v)) + case 2: + gen.out32(port, v) + default: + panic("bad size") + } +} + +func randSelector(r *rand.Rand) uint16 { + seg := uint16(r.Intn(40)) + dpl := uint16(r.Intn(4)) + ldt := uint16(r.Intn(2)) + return seg<<3 | ldt<<2 | dpl +} + +func pciAddrPort(r *rand.Rand) (addr uint32, port uint16, size int) { + bus := uint32(r.Intn(256)) + dev := uint32(r.Intn(32)) + fn := uint32(r.Intn(8)) + reghi := uint32(r.Intn(16)) + reglo := uint32(r.Intn(64)) << 2 + port = 0xcfc + switch size = r.Intn(3); size { + case 0: + port += uint16(reglo & 3) + reglo += uint32(r.Intn(4)) + case 1: + port += uint16(reglo & 2) + reglo += uint32(r.Intn(2) * 2) + case 2: + } + addr = 0x80000000 | reghi<<24 | bus<<16 | dev<<11 | fn<<8 | reglo + return +} + +var controlRegisters = []uint8{0, 3, 4, 8} +var controlRegistersBits = map[uint8][]uint8{ + 0: []uint8{0, 1, 2, 3, 4, 5, 16, 18, 29, 30, 31}, + 3: []uint8{3, 5}, + 4: []uint8{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 16, 17, 18, 20, 21, 22}, +} + +const eferMSR = 0xC0000080 + +var eferBits = []uint8{0, 8, 10, 11, 12, 13, 14, 15} + +var ports = []uint16{ + 0x40, 0x41, 0x42, 0x43, // PIT + 0x61, // speaker + 0x20, 0x21, 0xa0, 0xa1, 0x4d0, 0x4d1, // 8259 +} + +var msrs = []uint32{ + 0x0, 0x1, 0x10, 0x11, 0x12, 0x13, 0x17, 0x1b, + 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2c, 0x33, 0x34, + 0x3a, 0x3b, 0x40, 0x60, 0x79, 0x88, 0x89, 0x8a, + 0x8b, 0x9b, 0x9e, 0xc1, 0xc2, 0xcd, 0xce, 0xe2, + 0xe7, 0xe8, 0xfe, 0x116, 0x118, 0x119, 0x11a, 0x11b, + 0x11e, 0x174, 0x175, 0x176, 0x179, 0x17a, 0x17b, 0x180, + 0x181, 0x182, 0x183, 0x184, 0x185, 0x186, 0x187, 0x188, + 0x189, 0x18a, 0x198, 0x199, 0x19a, 0x19b, 0x19c, 0x19d, + 0x1a0, 0x1a2, 0x1a6, 0x1a7, 0x1aa, 0x1ad, 0x1ae, 0x1af, + 0x1b0, 0x1b1, 0x1b2, 0x1c8, 0x1c9, 0x1d9, 0x1db, 0x1dc, + 0x1dd, 0x1de, 0x1e0, 0x1fc, 0x200, 0x201, 0x202, 0x203, + 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x20a, 0x20b, + 0x20c, 0x20d, 0x20e, 0x20f, 0x210, 0x211, 0x212, 0x213, + 0x214, 0x215, 0x216, 0x217, 0x218, 0x219, 0x21a, 0x21b, + 0x21c, 0x21d, 0x21e, 0x21f, 0x220, 0x221, 0x222, 0x223, + 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22a, 0x22b, + 0x22c, 0x22d, 0x22e, 0x22f, 0x230, 0x231, 0x232, 0x233, + 0x234, 0x235, 0x236, 0x237, 0x238, 0x239, 0x23a, 0x23b, + 0x23c, 0x23d, 0x23e, 0x23f, 0x240, 0x241, 0x242, 0x243, + 0x244, 0x245, 0x246, 0x247, 0x248, 0x249, 0x24a, 0x24b, + 0x24c, 0x24d, 0x24e, 0x24f, 0x250, 0x251, 0x252, 0x253, + 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25a, 0x25b, + 0x25c, 0x25d, 0x25e, 0x25f, 0x260, 0x261, 0x262, 0x263, + 0x264, 0x265, 0x266, 0x267, 0x268, 0x269, 0x26a, 0x26b, + 0x26c, 0x26d, 0x26e, 0x26f, 0x270, 0x271, 0x272, 0x273, + 0x274, 0x275, 0x276, 0x277, 0x278, 0x279, 0x27a, 0x27b, + 0x27c, 0x27d, 0x27e, 0x27f, 0x280, 0x281, 0x282, 0x283, + 0x284, 0x285, 0x286, 0x287, 0x288, 0x289, 0x28a, 0x28b, + 0x28c, 0x28d, 0x28e, 0x28f, 0x290, 0x291, 0x292, 0x293, + 0x294, 0x295, 0x296, 0x297, 0x298, 0x299, 0x29a, 0x29b, + 0x29c, 0x29d, 0x29e, 0x29f, 0x2a0, 0x2a1, 0x2a2, 0x2a3, + 0x2a4, 0x2a5, 0x2a6, 0x2a7, 0x2a8, 0x2a9, 0x2aa, 0x2ab, + 0x2ac, 0x2ad, 0x2ae, 0x2af, 0x2b0, 0x2b1, 0x2b2, 0x2b3, + 0x2b4, 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9, 0x2ba, 0x2bb, + 0x2bc, 0x2bd, 0x2be, 0x2bf, 0x2c0, 0x2c1, 0x2c2, 0x2c3, + 0x2c4, 0x2c5, 0x2c6, 0x2c7, 0x2c8, 0x2c9, 0x2ca, 0x2cb, + 0x2cc, 0x2cd, 0x2ce, 0x2cf, 0x2d0, 0x2d1, 0x2d2, 0x2d3, + 0x2d4, 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9, 0x2da, 0x2db, + 0x2dc, 0x2dd, 0x2de, 0x2df, 0x2e0, 0x2e1, 0x2e2, 0x2e3, + 0x2e4, 0x2e5, 0x2e6, 0x2e7, 0x2e8, 0x2e9, 0x2ea, 0x2eb, + 0x2ec, 0x2ed, 0x2ee, 0x2ef, 0x2f0, 0x2f1, 0x2f2, 0x2f3, + 0x2f4, 0x2f5, 0x2f6, 0x2f7, 0x2f8, 0x2f9, 0x2fa, 0x2fb, + 0x2fc, 0x2fd, 0x2fe, 0x2ff, 0x300, 0x301, 0x302, 0x303, + 0x304, 0x305, 0x306, 0x307, 0x308, 0x309, 0x30a, 0x30b, + 0x30c, 0x30d, 0x30e, 0x30f, 0x310, 0x311, 0x312, 0x313, + 0x314, 0x315, 0x316, 0x317, 0x318, 0x319, 0x31a, 0x31b, + 0x31c, 0x31d, 0x31e, 0x31f, 0x320, 0x321, 0x322, 0x323, + 0x324, 0x325, 0x326, 0x327, 0x328, 0x329, 0x32a, 0x32b, + 0x32c, 0x32d, 0x32e, 0x32f, 0x330, 0x331, 0x332, 0x333, + 0x334, 0x335, 0x336, 0x337, 0x338, 0x339, 0x33a, 0x33b, + 0x33c, 0x33d, 0x33e, 0x33f, 0x340, 0x341, 0x342, 0x343, + 0x344, 0x345, 0x346, 0x347, 0x348, 0x349, 0x34a, 0x34b, + 0x34c, 0x34d, 0x34e, 0x34f, 0x350, 0x351, 0x352, 0x353, + 0x354, 0x355, 0x356, 0x357, 0x358, 0x359, 0x35a, 0x35b, + 0x35c, 0x35d, 0x35e, 0x35f, 0x360, 0x361, 0x362, 0x363, + 0x364, 0x365, 0x366, 0x367, 0x368, 0x369, 0x36a, 0x36b, + 0x36c, 0x36d, 0x36e, 0x36f, 0x370, 0x371, 0x372, 0x373, + 0x374, 0x375, 0x376, 0x377, 0x378, 0x379, 0x37a, 0x37b, + 0x37c, 0x37d, 0x37e, 0x37f, 0x380, 0x381, 0x382, 0x383, + 0x384, 0x385, 0x386, 0x387, 0x388, 0x389, 0x38a, 0x38b, + 0x38c, 0x38d, 0x38e, 0x38f, 0x390, 0x391, 0x392, 0x393, + 0x394, 0x395, 0x396, 0x397, 0x398, 0x399, 0x39a, 0x39b, + 0x39c, 0x39d, 0x39e, 0x39f, 0x3a0, 0x3a1, 0x3a2, 0x3a3, + 0x3a4, 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3a9, 0x3aa, 0x3ab, + 0x3ac, 0x3ad, 0x3ae, 0x3af, 0x3b0, 0x3b1, 0x3b2, 0x3b3, + 0x3b4, 0x3b5, 0x3b6, 0x3b7, 0x3b8, 0x3b9, 0x3ba, 0x3bb, + 0x3bc, 0x3bd, 0x3be, 0x3bf, 0x3c2, 0x3c3, 0x3c4, 0x3c5, + 0x3f1, 0x3f2, 0x3f6, 0x3f7, 0x3f8, 0x3f9, 0x3fa, 0x3fc, + 0x3fd, 0x3fe, 0x3ff, 0x400, 0x401, 0x402, 0x403, 0x404, + 0x405, 0x406, 0x407, 0x408, 0x409, 0x40a, 0x40b, 0x40c, + 0x40d, 0x40e, 0x40f, 0x410, 0x411, 0x412, 0x413, 0x480, + 0x481, 0x482, 0x483, 0x484, 0x485, 0x486, 0x487, 0x488, + 0x489, 0x48a, 0x48b, 0x48c, 0x48d, 0x48e, 0x48f, 0x490, + 0x491, 0x4c1, 0x4d0, 0x560, 0x561, 0x570, 0x571, 0x572, + 0x580, 0x581, 0x582, 0x583, 0x584, 0x585, 0x586, 0x587, + 0x600, 0x606, 0x60a, 0x60b, 0x60c, 0x60d, 0x610, 0x611, + 0x613, 0x614, 0x618, 0x619, 0x61b, 0x61c, 0x630, 0x631, + 0x632, 0x633, 0x634, 0x635, 0x638, 0x639, 0x63a, 0x63b, + 0x640, 0x641, 0x642, 0x648, 0x649, 0x64a, 0x64b, 0x64c, + 0x64d, 0x64e, 0x64f, 0x658, 0x659, 0x65a, 0x65b, 0x660, + 0x668, 0x669, 0x680, 0x690, 0x6b0, 0x6b1, 0x6c0, 0x6e0, + 0x770, 0x771, 0x772, 0x773, 0x774, 0x777, 0x800, 0x801, + 0x802, 0x803, 0x804, 0x805, 0x806, 0x807, 0x808, 0x809, + 0x80a, 0x80b, 0x80c, 0x80d, 0x80e, 0x80f, 0x810, 0x811, + 0x812, 0x813, 0x814, 0x815, 0x816, 0x817, 0x818, 0x819, + 0x81a, 0x81b, 0x81c, 0x81d, 0x81e, 0x81f, 0x820, 0x821, + 0x822, 0x823, 0x824, 0x825, 0x826, 0x827, 0x828, 0x829, + 0x82a, 0x82b, 0x82c, 0x82d, 0x82e, 0x82f, 0x830, 0x831, + 0x832, 0x833, 0x834, 0x835, 0x836, 0x837, 0x838, 0x839, + 0x83a, 0x83b, 0x83c, 0x83d, 0x83e, 0x83f, 0x840, 0x841, + 0x842, 0x843, 0x844, 0x845, 0x846, 0x847, 0x848, 0x849, + 0x84a, 0x84b, 0x84c, 0x84d, 0x84e, 0x84f, 0x850, 0x851, + 0x852, 0x853, 0x854, 0x855, 0x856, 0x857, 0x858, 0x859, + 0x85a, 0x85b, 0x85c, 0x85d, 0x85e, 0x85f, 0x860, 0x861, + 0x862, 0x863, 0x864, 0x865, 0x866, 0x867, 0x868, 0x869, + 0x86a, 0x86b, 0x86c, 0x86d, 0x86e, 0x86f, 0x870, 0x871, + 0x872, 0x873, 0x874, 0x875, 0x876, 0x877, 0x878, 0x879, + 0x87a, 0x87b, 0x87c, 0x87d, 0x87e, 0x87f, 0x880, 0x881, + 0x882, 0x883, 0x884, 0x885, 0x886, 0x887, 0x888, 0x889, + 0x88a, 0x88b, 0x88c, 0x88d, 0x88e, 0x88f, 0x890, 0x891, + 0x892, 0x893, 0x894, 0x895, 0x896, 0x897, 0x898, 0x899, + 0x89a, 0x89b, 0x89c, 0x89d, 0x89e, 0x89f, 0x8a0, 0x8a1, + 0x8a2, 0x8a3, 0x8a4, 0x8a5, 0x8a6, 0x8a7, 0x8a8, 0x8a9, + 0x8aa, 0x8ab, 0x8ac, 0x8ad, 0x8ae, 0x8af, 0x8b0, 0x8b1, + 0x8b2, 0x8b3, 0x8b4, 0x8b5, 0x8b6, 0x8b7, 0x8b8, 0x8b9, + 0x8ba, 0x8bb, 0x8bc, 0x8bd, 0x8be, 0x8bf, 0x8c0, 0x8c1, + 0x8c2, 0x8c3, 0x8c4, 0x8c5, 0x8c6, 0x8c7, 0x8c8, 0x8c9, + 0x8ca, 0x8cb, 0x8cc, 0x8cd, 0x8ce, 0x8cf, 0x8d0, 0x8d1, + 0x8d2, 0x8d3, 0x8d4, 0x8d5, 0x8d6, 0x8d7, 0x8d8, 0x8d9, + 0x8da, 0x8db, 0x8dc, 0x8dd, 0x8de, 0x8df, 0x8e0, 0x8e1, + 0x8e2, 0x8e3, 0x8e4, 0x8e5, 0x8e6, 0x8e7, 0x8e8, 0x8e9, + 0x8ea, 0x8eb, 0x8ec, 0x8ed, 0x8ee, 0x8ef, 0x8f0, 0x8f1, + 0x8f2, 0x8f3, 0x8f4, 0x8f5, 0x8f6, 0x8f7, 0x8f8, 0x8f9, + 0x8fa, 0x8fb, 0x8fc, 0x8fd, 0x8fe, 0x8ff, 0x900, 0x901, + 0x902, 0x903, 0x904, 0x905, 0x906, 0x907, 0x908, 0x909, + 0x90a, 0x90b, 0x90c, 0x90d, 0x90e, 0x90f, 0x910, 0x911, + 0x912, 0x913, 0x914, 0x915, 0x916, 0x917, 0x918, 0x919, + 0x91a, 0x91b, 0x91c, 0x91d, 0x91e, 0x91f, 0x920, 0x921, + 0x922, 0x923, 0x924, 0x925, 0x926, 0x927, 0x928, 0x929, + 0x92a, 0x92b, 0x92c, 0x92d, 0x92e, 0x92f, 0x930, 0x931, + 0x932, 0x933, 0x934, 0x935, 0x936, 0x937, 0x938, 0x939, + 0x93a, 0x93b, 0x93c, 0x93d, 0x93e, 0x93f, 0x940, 0x941, + 0x942, 0x943, 0x944, 0x945, 0x946, 0x947, 0x948, 0x949, + 0x94a, 0x94b, 0x94c, 0x94d, 0x94e, 0x94f, 0x950, 0x951, + 0x952, 0x953, 0x954, 0x955, 0x956, 0x957, 0x958, 0x959, + 0x95a, 0x95b, 0x95c, 0x95d, 0x95e, 0x95f, 0x960, 0x961, + 0x962, 0x963, 0x964, 0x965, 0x966, 0x967, 0x968, 0x969, + 0x96a, 0x96b, 0x96c, 0x96d, 0x96e, 0x96f, 0x970, 0x971, + 0x972, 0x973, 0x974, 0x975, 0x976, 0x977, 0x978, 0x979, + 0x97a, 0x97b, 0x97c, 0x97d, 0x97e, 0x97f, 0x980, 0x981, + 0x982, 0x983, 0x984, 0x985, 0x986, 0x987, 0x988, 0x989, + 0x98a, 0x98b, 0x98c, 0x98d, 0x98e, 0x98f, 0x990, 0x991, + 0x992, 0x993, 0x994, 0x995, 0x996, 0x997, 0x998, 0x999, + 0x99a, 0x99b, 0x99c, 0x99d, 0x99e, 0x99f, 0x9a0, 0x9a1, + 0x9a2, 0x9a3, 0x9a4, 0x9a5, 0x9a6, 0x9a7, 0x9a8, 0x9a9, + 0x9aa, 0x9ab, 0x9ac, 0x9ad, 0x9ae, 0x9af, 0x9b0, 0x9b1, + 0x9b2, 0x9b3, 0x9b4, 0x9b5, 0x9b6, 0x9b7, 0x9b8, 0x9b9, + 0x9ba, 0x9bb, 0x9bc, 0x9bd, 0x9be, 0x9bf, 0x9c0, 0x9c1, + 0x9c2, 0x9c3, 0x9c4, 0x9c5, 0x9c6, 0x9c7, 0x9c8, 0x9c9, + 0x9ca, 0x9cb, 0x9cc, 0x9cd, 0x9ce, 0x9cf, 0x9d0, 0x9d1, + 0x9d2, 0x9d3, 0x9d4, 0x9d5, 0x9d6, 0x9d7, 0x9d8, 0x9d9, + 0x9da, 0x9db, 0x9dc, 0x9dd, 0x9de, 0x9df, 0x9e0, 0x9e1, + 0x9e2, 0x9e3, 0x9e4, 0x9e5, 0x9e6, 0x9e7, 0x9e8, 0x9e9, + 0x9ea, 0x9eb, 0x9ec, 0x9ed, 0x9ee, 0x9ef, 0x9f0, 0x9f1, + 0x9f2, 0x9f3, 0x9f4, 0x9f5, 0x9f6, 0x9f7, 0x9f8, 0x9f9, + 0x9fa, 0x9fb, 0x9fc, 0x9fd, 0x9fe, 0x9ff, 0xa00, 0xa01, + 0xa02, 0xa03, 0xa04, 0xa05, 0xa06, 0xa07, 0xa08, 0xa09, + 0xa0a, 0xa0b, 0xa0c, 0xa0d, 0xa0e, 0xa0f, 0xa10, 0xa11, + 0xa12, 0xa13, 0xa14, 0xa15, 0xa16, 0xa17, 0xa18, 0xa19, + 0xa1a, 0xa1b, 0xa1c, 0xa1d, 0xa1e, 0xa1f, 0xa20, 0xa21, + 0xa22, 0xa23, 0xa24, 0xa25, 0xa26, 0xa27, 0xa28, 0xa29, + 0xa2a, 0xa2b, 0xa2c, 0xa2d, 0xa2e, 0xa2f, 0xa30, 0xa31, + 0xa32, 0xa33, 0xa34, 0xa35, 0xa36, 0xa37, 0xa38, 0xa39, + 0xa3a, 0xa3b, 0xa3c, 0xa3d, 0xa3e, 0xa3f, 0xa40, 0xa41, + 0xa42, 0xa43, 0xa44, 0xa45, 0xa46, 0xa47, 0xa48, 0xa49, + 0xa4a, 0xa4b, 0xa4c, 0xa4d, 0xa4e, 0xa4f, 0xa50, 0xa51, + 0xa52, 0xa53, 0xa54, 0xa55, 0xa56, 0xa57, 0xa58, 0xa59, + 0xa5a, 0xa5b, 0xa5c, 0xa5d, 0xa5e, 0xa5f, 0xa60, 0xa61, + 0xa62, 0xa63, 0xa64, 0xa65, 0xa66, 0xa67, 0xa68, 0xa69, + 0xa6a, 0xa6b, 0xa6c, 0xa6d, 0xa6e, 0xa6f, 0xa70, 0xa71, + 0xa72, 0xa73, 0xa74, 0xa75, 0xa76, 0xa77, 0xa78, 0xa79, + 0xa7a, 0xa7b, 0xa7c, 0xa7d, 0xa7e, 0xa7f, 0xa80, 0xa81, + 0xa82, 0xa83, 0xa84, 0xa85, 0xa86, 0xa87, 0xa88, 0xa89, + 0xa8a, 0xa8b, 0xa8c, 0xa8d, 0xa8e, 0xa8f, 0xa90, 0xa91, + 0xa92, 0xa93, 0xa94, 0xa95, 0xa96, 0xa97, 0xa98, 0xa99, + 0xa9a, 0xa9b, 0xa9c, 0xa9d, 0xa9e, 0xa9f, 0xaa0, 0xaa1, + 0xaa2, 0xaa3, 0xaa4, 0xaa5, 0xaa6, 0xaa7, 0xaa8, 0xaa9, + 0xaaa, 0xaab, 0xaac, 0xaad, 0xaae, 0xaaf, 0xab0, 0xab1, + 0xab2, 0xab3, 0xab4, 0xab5, 0xab6, 0xab7, 0xab8, 0xab9, + 0xaba, 0xabb, 0xabc, 0xabd, 0xabe, 0xabf, 0xac0, 0xac1, + 0xac2, 0xac3, 0xac4, 0xac5, 0xac6, 0xac7, 0xac8, 0xac9, + 0xaca, 0xacb, 0xacc, 0xacd, 0xace, 0xacf, 0xad0, 0xad1, + 0xad2, 0xad3, 0xad4, 0xad5, 0xad6, 0xad7, 0xad8, 0xad9, + 0xada, 0xadb, 0xadc, 0xadd, 0xade, 0xadf, 0xae0, 0xae1, + 0xae2, 0xae3, 0xae4, 0xae5, 0xae6, 0xae7, 0xae8, 0xae9, + 0xaea, 0xaeb, 0xaec, 0xaed, 0xaee, 0xaef, 0xaf0, 0xaf1, + 0xaf2, 0xaf3, 0xaf4, 0xaf5, 0xaf6, 0xaf7, 0xaf8, 0xaf9, + 0xafa, 0xafb, 0xafc, 0xafd, 0xafe, 0xaff, 0xb00, 0xb01, + 0xb02, 0xb03, 0xb04, 0xb05, 0xb06, 0xb07, 0xb08, 0xb09, + 0xb0a, 0xb0b, 0xb0c, 0xb0d, 0xb0e, 0xb0f, 0xb10, 0xb11, + 0xb12, 0xb13, 0xb14, 0xb15, 0xb16, 0xb17, 0xb18, 0xb19, + 0xb1a, 0xb1b, 0xb1c, 0xb1d, 0xb1e, 0xb1f, 0xb20, 0xb21, + 0xb22, 0xb23, 0xb24, 0xb25, 0xb26, 0xb27, 0xb28, 0xb29, + 0xb2a, 0xb2b, 0xb2c, 0xb2d, 0xb2e, 0xb2f, 0xb30, 0xb31, + 0xb32, 0xb33, 0xb34, 0xb35, 0xb36, 0xb37, 0xb38, 0xb39, + 0xb3a, 0xb3b, 0xb3c, 0xb3d, 0xb3e, 0xb3f, 0xb40, 0xb41, + 0xb42, 0xb43, 0xb44, 0xb45, 0xb46, 0xb47, 0xb48, 0xb49, + 0xb4a, 0xb4b, 0xb4c, 0xb4d, 0xb4e, 0xb4f, 0xb50, 0xb51, + 0xb52, 0xb53, 0xb54, 0xb55, 0xb56, 0xb57, 0xb58, 0xb59, + 0xb5a, 0xb5b, 0xb5c, 0xb5d, 0xb5e, 0xb5f, 0xb60, 0xb61, + 0xb62, 0xb63, 0xb64, 0xb65, 0xb66, 0xb67, 0xb68, 0xb69, + 0xb6a, 0xb6b, 0xb6c, 0xb6d, 0xb6e, 0xb6f, 0xb70, 0xb71, + 0xb72, 0xb73, 0xb74, 0xb75, 0xb76, 0xb77, 0xb78, 0xb79, + 0xb7a, 0xb7b, 0xb7c, 0xb7d, 0xb7e, 0xb7f, 0xb80, 0xb81, + 0xb82, 0xb83, 0xb84, 0xb85, 0xb86, 0xb87, 0xb88, 0xb89, + 0xb8a, 0xb8b, 0xb8c, 0xb8d, 0xb8e, 0xb8f, 0xb90, 0xb91, + 0xb92, 0xb93, 0xb94, 0xb95, 0xb96, 0xb97, 0xb98, 0xb99, + 0xb9a, 0xb9b, 0xb9c, 0xb9d, 0xb9e, 0xb9f, 0xba0, 0xba1, + 0xba2, 0xba3, 0xba4, 0xba5, 0xba6, 0xba7, 0xba8, 0xba9, + 0xbaa, 0xbab, 0xbac, 0xbad, 0xbae, 0xbaf, 0xbb0, 0xbb1, + 0xbb2, 0xbb3, 0xbb4, 0xbb5, 0xbb6, 0xbb7, 0xbb8, 0xbb9, + 0xbba, 0xbbb, 0xbbc, 0xbbd, 0xbbe, 0xbbf, 0xbc0, 0xbc1, + 0xbc2, 0xbc3, 0xbc4, 0xbc5, 0xbc6, 0xbc7, 0xbc8, 0xbc9, + 0xbca, 0xbcb, 0xbcc, 0xbcd, 0xbce, 0xbcf, 0xbd0, 0xbd1, + 0xbd2, 0xbd3, 0xbd4, 0xbd5, 0xbd6, 0xbd7, 0xbd8, 0xbd9, + 0xbda, 0xbdb, 0xbdc, 0xbdd, 0xbde, 0xbdf, 0xbe0, 0xbe1, + 0xbe2, 0xbe3, 0xbe4, 0xbe5, 0xbe6, 0xbe7, 0xbe8, 0xbe9, + 0xbea, 0xbeb, 0xbec, 0xbed, 0xbee, 0xbef, 0xbf0, 0xbf1, + 0xbf2, 0xbf3, 0xbf4, 0xbf5, 0xbf6, 0xbf7, 0xbf8, 0xbf9, + 0xbfa, 0xbfb, 0xbfc, 0xbfd, 0xbfe, 0xbff, 0xd90, 0xda0, + 0xdc0, 0xdc1, 0xdc2, 0xdc3, 0xdc4, 0xdc5, 0xdc6, 0xdc7, + 0x40000000, 0x40000001, 0x40000002, 0x40000003, 0x40000010, 0x40000020, 0x40000022, 0x40000023, + 0x40000070, 0x40000071, 0x40000072, 0x40000073, 0x40000080, 0x40000081, 0x40000082, 0x40000083, + 0x40000084, 0x40000090, 0x40000091, 0x40000092, 0x40000093, 0x40000094, 0x40000095, 0x40000096, + 0x40000097, 0x40000098, 0x40000099, 0x4000009a, 0x4000009b, 0x4000009c, 0x4000009d, 0x4000009e, + 0x4000009f, 0x400000b0, 0x400000b1, 0x400000b2, 0x400000b3, 0x400000b4, 0x400000b5, 0x400000b6, + 0x400000b7, 0x40000100, 0x40000101, 0x40000102, 0x40000103, 0x40000104, 0x40000105, 0x4b564d00, + 0x4b564d01, 0x4b564d02, 0x4b564d03, 0x4b564d04, 0xc0000080, 0xc0000081, 0xc0000082, 0xc0000083, + 0xc0000084, 0xc0000100, 0xc0000101, 0xc0000102, 0xc0000103, 0xc0000104, 0xc001001f, 0xc0010020, + 0xc0010044, 0xc0010062, 0xc0010063, 0xc0010064, 0xc0010114, 0xc0010115, 0xc0010117, 0xc0010140, + 0xc0010141, 0xc0011020, 0xc0011022, 0xc001102a, 0xc0011030, 0xc0011031, 0xc0011032, 0xc0011033, + 0xc0011034, 0xc0011035, 0xc0011036, 0xc0011037, 0xc0011038, 0xc0011039, 0xc001103a, 0xc001103b, + 0xc001103d, +} diff --git a/pkg/ifuzz/xed.go b/pkg/ifuzz/xed.go new file mode 100644 index 000000000..f8bc0fe4b --- /dev/null +++ b/pkg/ifuzz/xed.go @@ -0,0 +1,65 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +// XedDecode is required for tests, but it requires Intel XED library installed, so it is disabled by default. +// To run full tests, check out and build github.com/intelxed/xed, then run: +// INTELXED=/path/to/intelxed CGO_CFLAGS="-I $INTELXED/xed/include/public -I $INTELXED/build/obj" CGO_LDFLAGS="$INTELXED/build/obj/libxed.a" go test -v -tags xed + +// +build xed + +package ifuzz + +/* +#include "xed-interface.h" + +int xedDecode(int mode, int addrsize, void* text, int size, const char** error) { + xed_decoded_inst_t xedd; + xed_decoded_inst_zero(&xedd); + xed_decoded_inst_set_mode(&xedd, mode, addrsize); + xed_error_enum_t err = xed_decode(&xedd, text, size); + if (err != XED_ERROR_NONE) { + if (error) + *error = xed_error_enum_t2str(err); + return 0; + } + return xed_decoded_inst_get_length(&xedd); +} +*/ +import "C" + +import ( + "errors" + "unsafe" +) + +func init() { + C.xed_tables_init() + XedDecode = xedDecode +} + +func xedDecode(mode int, text []byte) (int, error) { + xedMode := 0 + xedAddr := 0 + switch mode { + case ModeLong64: + xedMode = C.XED_MACHINE_MODE_LONG_64 + xedAddr = C.XED_ADDRESS_WIDTH_64b + case ModeProt32: + xedMode = C.XED_MACHINE_MODE_LONG_COMPAT_32 + xedAddr = C.XED_ADDRESS_WIDTH_32b + case ModeProt16: + xedMode = C.XED_MACHINE_MODE_LONG_COMPAT_16 + xedAddr = C.XED_ADDRESS_WIDTH_16b + case ModeReal16: + xedMode = C.XED_MACHINE_MODE_REAL_16 + xedAddr = C.XED_ADDRESS_WIDTH_16b + default: + panic("bad mode") + } + var errorStr *C.char + res := C.xedDecode(C.int(xedMode), C.int(xedAddr), unsafe.Pointer(&text[0]), C.int(len(text)), &errorStr) + if res == 0 { + return 0, errors.New(C.GoString(errorStr)) + } + return int(res), nil +} |
