# Mnemonic          Explicit Operands     Implicit          Encoding                                Flags, Prefixes, Set, Category, Class, RW map, Additional ops
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# 0x00 - 0x0F
PSHUFB              Pq,Qq                 nil               [         NP 0x0F 0x38 0x00 /r]         s:SSSE3, t:MMX, w:RW|R
PSHUFB              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x00 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PHADDW              Pq,Qq                 nil               [         NP 0x0F 0x38 0x01 /r]         s:SSSE3, t:MMX, w:RW|R
PHADDW              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x01 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PHADDD              Pq,Qq                 nil               [         NP 0x0F 0x38 0x02 /r]         s:SSSE3, t:MMX, w:RW|R
PHADDD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x02 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PHADDSW             Pq,Qq                 nil               [         NP 0x0F 0x38 0x03 /r]         s:SSSE3, t:MMX, w:RW|R
PHADDSW             Vx,Wx                 nil               [       0x66 0x0F 0x38 0x03 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PMADDUBSW           Pq,Qq                 nil               [         NP 0x0F 0x38 0x04 /r]         s:SSSE3, t:MMX, w:RW|R
PMADDUBSW           Vx,Wx                 nil               [       0x66 0x0F 0x38 0x04 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PHSUBW              Pq,Qq                 nil               [         NP 0x0F 0x38 0x05 /r]         s:SSSE3, t:MMX, w:RW|R
PHSUBW              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x05 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PHSUBD              Pq,Qq                 nil               [         NP 0x0F 0x38 0x06 /r]         s:SSSE3, t:MMX, w:RW|R
PHSUBD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x06 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PHSUBSW             Pq,Qq                 nil               [         NP 0x0F 0x38 0x07 /r]         s:SSSE3, t:MMX, w:RW|R
PHSUBSW             Vx,Wx                 nil               [       0x66 0x0F 0x38 0x07 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PSIGNB              Pq,Qq                 nil               [         NP 0x0F 0x38 0x08 /r]         s:SSSE3, t:MMX, w:RW|R
PSIGNB              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x08 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PSIGNW              Pq,Qq                 nil               [         NP 0x0F 0x38 0x09 /r]         s:SSSE3, t:MMX, w:RW|R
PSIGNW              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x09 /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PSIGND              Pq,Qq                 nil               [         NP 0x0F 0x38 0x0A /r]         s:SSSE3, t:MMX, w:RW|R
PSIGND              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x0A /r]         s:SSSE3, t:SSE, w:RW|R, e:4
PMULHRSW            Pq,Qq                 nil               [         NP 0x0F 0x38 0x0B /r]         s:SSSE3, t:MMX, w:RW|R
PMULHRSW            Vx,Wx                 nil               [       0x66 0x0F 0x38 0x0B /r]         s:SSSE3, t:SSE, w:RW|R, e:4

# 0x10 - 0x1F
PBLENDVB            Vdq,Wdq               XMM0              [       0x66 0x0F 0x38 0x10 /r]         s:SSE4, t:SSE, w:RW|R|R, e:4
BLENDVPS            Vdq,Wdq               XMM0              [       0x66 0x0F 0x38 0x14 /r]         s:SSE4, t:SSE, w:RW|R|R, e:4
BLENDVPD            Vdq,Wdq               XMM0              [       0x66 0x0F 0x38 0x15 /r]         s:SSE4, t:SSE, w:RW|R|R, e:4
PTEST               Vdq,Wdq               Fv                [       0x66 0x0F 0x38 0x17 /r]         s:SSE4, t:SSE, w:R|R|W, f:CF=m|PF=0|AF=0|ZF=m|SF=0|OF=0, e:4
PABSB               Pq,Qq                 nil               [         NP 0x0F 0x38 0x1C /r]         s:SSSE3, t:MMX, w:W|R
PABSB               Vx,Wx                 nil               [       0x66 0x0F 0x38 0x1C /r]         s:SSSE3, t:SSE, w:W|R, e:4
PABSW               Pq,Qq                 nil               [         NP 0x0F 0x38 0x1D /r]         s:SSSE3, t:MMX, w:W|R
PABSW               Vx,Wx                 nil               [       0x66 0x0F 0x38 0x1D /r]         s:SSSE3, t:SSE, w:W|R, e:4
PABSD               Pq,Qq                 nil               [         NP 0x0F 0x38 0x1E /r]         s:SSSE3, t:MMX, w:W|R
PABSD               Vx,Wx                 nil               [       0x66 0x0F 0x38 0x1E /r]         s:SSSE3, t:SSE, w:W|R, e:4

# 0x20 - 0x2F
PMOVSXBW            Vdq,Wq                nil               [       0x66 0x0F 0x38 0x20 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVSXBD            Vdq,Wd                nil               [       0x66 0x0F 0x38 0x21 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVSXBQ            Vdq,Ww                nil               [       0x66 0x0F 0x38 0x22 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVSXWD            Vdq,Wq                nil               [       0x66 0x0F 0x38 0x23 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVSXWQ            Vdq,Wd                nil               [       0x66 0x0F 0x38 0x24 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVSXDQ            Vdq,Wq                nil               [       0x66 0x0F 0x38 0x25 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMULDQ              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x28 /r]         s:SSE4, t:SSE, w:RW|R, e:4
PCMPEQQ             Vx,Wx                 nil               [       0x66 0x0F 0x38 0x29 /r]         s:SSE4, t:SSE, w:RW|R, e:4
MOVNTDQA            Vx,Mx                 nil               [       0x66 0x0F 0x38 0x2A /r:mem]     s:SSE4, t:SSE, w:W|R, e:1
PACKUSDW            Vx,Wx                 nil               [       0x66 0x0F 0x38 0x2B /r]         s:SSE4, t:SSE, w:RW|R, e:4


# 0x30 - 0x3F
PMOVZXBW            Vdq,Wq                nil               [       0x66 0x0F 0x38 0x30 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVZXBD            Vdq,Wd                nil               [       0x66 0x0F 0x38 0x31 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVZXBQ            Vdq,Ww                nil               [       0x66 0x0F 0x38 0x32 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVZXWD            Vdq,Wq                nil               [       0x66 0x0F 0x38 0x33 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVZXWQ            Vdq,Wd                nil               [       0x66 0x0F 0x38 0x34 /r]         s:SSE4, t:SSE, w:W|R, e:5
PMOVZXDQ            Vdq,Wq                nil               [       0x66 0x0F 0x38 0x35 /r]         s:SSE4, t:SSE, w:W|R, e:5
PCMPGTQ             Vx,Wx                 nil               [       0x66 0x0F 0x38 0x37 /r]         s:SSE42, t:SSE, w:RW|R, e:4
PMINSB              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x38 /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMINSD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x39 /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMINUW              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x3A /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMINUD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x3B /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMAXSB              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x3C /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMAXSD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x3D /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMAXUW              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x3E /r]         s:SSE4, t:SSE, w:RW|R, e:4
PMAXUD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x3F /r]         s:SSE4, t:SSE, w:RW|R, e:4

# 0x40 - 0x4F
PMULLD              Vx,Wx                 nil               [       0x66 0x0F 0x38 0x40 /r]         s:SSE4, t:SSE, w:RW|R, e:4
PHMINPOSUW          Vdq,Wdq               nil               [       0x66 0x0F 0x38 0x41 /r]         s:SSE4, t:SSE, w:W|R, e:4

# 0x50 - 0x5F

# 0x60 - 0x6F

# 0x70 - 0x7F

# 0x80 - 0x8F
INVEPT              Gy,Mdq                Fv                [       0x66 0x0F 0x38 0x80 /r:mem]     s:VTX, t:VTX, w:R|R|W, f:VMX, a:F64|SERIAL, m:VMXROOT
INVVPID             Gy,Mdq                Fv                [       0x66 0x0F 0x38 0x81 /r:mem]     s:VTX, t:VTX, w:R|R|W, f:VMX, a:F64|SERIAL, m:VMXROOT
INVPCID             Gy,Mdq                nil               [       0x66 0x0F 0x38 0x82 /r:mem]     s:INVPCID, t:MISC, w:R|R, a:F64, m:KERNEL|NOV86

# 0x90 - 0x9F

# 0xA0 - 0xAF

# 0xB0 - 0xBF

# 0xC0 - 0xCF
SHA1NEXTE           Vdq,Wdq               nil               [         NP 0x0F 0x38 0xC8 /r]         s:SHA, t:SHA, w:RW|R, e:4
SHA1MSG1            Vdq,Wdq               nil               [         NP 0x0F 0x38 0xC9 /r]         s:SHA, t:SHA, w:RW|R, e:4
SHA1MSG2            Vdq,Wdq               nil               [         NP 0x0F 0x38 0xCA /r]         s:SHA, t:SHA, w:RW|R, e:4
SHA256RNDS2         Vdq,Wdq               XMM0              [         NP 0x0F 0x38 0xCB /r]         s:SHA, t:SHA, w:RW|R|R, e:4
SHA256MSG1          Vdq,Wdq               nil               [         NP 0x0F 0x38 0xCC /r]         s:SHA, t:SHA, w:RW|R, e:4
SHA256MSG2          Vdq,Wdq               nil               [         NP 0x0F 0x38 0xCD /r]         s:SHA, t:SHA, w:RW|R, e:4
GF2P8MULB           Vdq,Wdq               nil               [       0x66 0x0F 0x38 0xCF /r]         s:GFNI, t:GFNI, w:RW|R, e:4

# 0xD0 - 0xDF
AESIMC              Vdq,Wdq               nil               [       0x66 0x0F 0x38 0xDB /r]         s:AES, t:AES, w:W|R, e:4
AESENC              Vdq,Wdq               nil               [       0x66 0x0F 0x38 0xDC /r]         s:AES, t:AES, w:RW|R, e:4
AESENCLAST          Vdq,Wdq               nil               [       0x66 0x0F 0x38 0xDD /r]         s:AES, t:AES, w:RW|R, e:4
AESDEC              Vdq,Wdq               nil               [       0x66 0x0F 0x38 0xDE /r]         s:AES, t:AES, w:RW|R, e:4
AESDECLAST          Vdq,Wdq               nil               [       0x66 0x0F 0x38 0xDF /r]         s:AES, t:AES, w:RW|R, e:4

# 0xE0 - 0xEF

# 0xF0 - 0xFF
MOVBE               Gv,Mv                 nil               [            0x0F 0x38 0xF0 /r:mem]     s:MOVBE, t:DATAXFER, w:W|R
MOVBE               Gv,Mv                 nil               [       0x66 0x0F 0x38 0xF0 /r:mem]     s:MOVBE, t:DATAXFER, w:W|R, a:S66
CRC32               Gy,Eb                 nil               [       0xF2 0x0F 0x38 0xF0 /r]         s:SSE42, t:SSE, w:RW|R
CRC32               Gy,Eb                 nil               [  0x66 0xF2 0x0F 0x38 0xF0 /r]         s:SSE42, t:SSE, w:RW|R, a:S66
MOVBE               Mv,Gv                 nil               [            0x0F 0x38 0xF1 /r:mem]     s:MOVBE, t:DATAXFER, w:W|R
MOVBE               Mv,Gv                 nil               [       0x66 0x0F 0x38 0xF1 /r:mem]     s:MOVBE, t:DATAXFER, w:W|R, a:S66
CRC32               Gy,Ev                 nil               [       0xF2 0x0F 0x38 0xF1 /r]         s:SSE42, t:SSE, w:RW|R
CRC32               Gy,Ev                 nil               [  0x66 0xF2 0x0F 0x38 0xF1 /r]         s:SSE42, t:SSE, w:RW|R, a:S66
WRUSSD              My,Gy                 nil               [       0x66 0x0F 0x38 0xF5 /r:mem]     s:CET_SS, t:CET, c:WRUSS, a:SHS, w:W|R
WRUSSQ              My,Gy                 nil               [  rexw 0x66 0x0F 0x38 0xF5 /r:mem]     s:CET_SS, t:CET, c:WRUSS, a:SHS, w:W|R
WRSSD               My,Gy                 nil               [         NP 0x0F 0x38 0xF6 /r:mem]     s:CET_SS, t:CET, c:WRSS, a:SHS, w:W|R
WRSSQ               My,Gy                 nil               [    rexw NP 0x0F 0x38 0xF6 /r:mem]     s:CET_SS, t:CET, c:WRSS, a:SHS, w:W|R
ADCX                Gy,Ey                 Fv                [       0x66 0x0F 0x38 0xF6 /r]         s:ADX, t:ARITH, w:RW|R|RW, f:CF=m
ADOX                Gy,Ey                 Fv                [       0xF3 0x0F 0x38 0xF6 /r]         s:ADX, t:ARITH, w:RW|R|RW, f:OF=m
MOVDIR64B           rMoq,Moq              nil               [       0x66 0x0F 0x38 0xF8 /r:mem]     s:MOVDIR64B, t:MOVDIR64B, w:W|R
ENQCMD              rM?,Moq               Fv                [       0xF2 0x0F 0x38 0xF8 /r:mem]     s:ENQCMD, t:ENQCMD, w:W|R|W, f:ENQCMD
ENQCMDS             rM?,Moq               Fv                [       0xF3 0x0F 0x38 0xF8 /r:mem]     s:ENQCMD, t:ENQCMD, w:W|R|W, f:ENQCMD
MOVDIRI             My,Gy                 nil               [         NP 0x0F 0x38 0xF9 /r:mem]     s:MOVDIRI, t:MOVDIRI, w:W|R
