# Mnemonic          Explicit Operands     Implicit          Encoding                                Flags, Prefixes, Set, Category, Class, RW map, Additional ops
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# 0x00 - 0x0F
ROUNDPS             Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x08 /r ib]      s:SSE4, t:SSE, w:W|R|R, e:2
ROUNDPD             Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x09 /r ib]      s:SSE4, t:SSE, w:W|R|R, e:2
ROUNDSS             Vss,Wss,Ib            nil               [       0x66 0x0F 0x3A 0x0A /r ib]      s:SSE4, t:SSE, w:W|R|R, e:3
ROUNDSD             Vsd,Wsd,Ib            nil               [       0x66 0x0F 0x3A 0x0B /r ib]      s:SSE4, t:SSE, w:W|R|R, e:3
BLENDPS             Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x0C /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:4
BLENDPD             Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x0D /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:4
PBLENDW             Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x0E /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:4
PALIGNR             Pq,Qq,Ib              nil               [         NP 0x0F 0x3A 0x0F /r ib]      s:SSSE3, t:MMX, w:RW|R|R
PALIGNR             Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x0F /r ib]      s:SSSE3, t:SSE, w:RW|R|R, e:4

# 0x10 - 0x1F
# TODO: for PEXTRx, a smaller size is accessed, in fact.
PEXTRB              Mb,Vdq,Ib             nil               [       0x66 0x0F 0x3A 0x14 /r:mem ib]  s:SSE4, t:SSE, w:W|R|R, e:5
PEXTRB              Rd,Vdq,Ib             nil               [       0x66 0x0F 0x3A 0x14 /r:reg ib]  s:SSE4, t:SSE, w:W|R|R, e:5
PEXTRW              Mw,Vdq,Ib             nil               [       0x66 0x0F 0x3A 0x15 /r:mem ib]  s:SSE4, t:SSE, w:W|R|R, e:5
PEXTRW              Rd,Vdq,Ib             nil               [       0x66 0x0F 0x3A 0x15 /r:reg ib]  s:SSE4, t:SSE, w:W|R|R, e:5
PEXTRD              Ey,Vdq,Ib             nil               [       0x66 0x0F 0x3A 0x16 /r ib]      s:SSE4, t:SSE, w:W|R|R, e:5
PEXTRQ              Ey,Vdq,Ib             nil               [  rexw 0x66 0x0F 0x3A 0x16 /r ib]      s:SSE4, t:SSE, w:W|R|R, e:5
EXTRACTPS           Ed,Vdq,Ib             nil               [       0x66 0x0F 0x3A 0x17 /r ib]      s:SSE4, t:SSE, w:W|R|R, e:5

# 0x20 - 0x2F
PINSRB              Vdq,Mb,Ib             nil               [       0x66 0x0F 0x3A 0x20 /r:mem ib]  s:SSE4, t:SSE, w:RW|R|R, e:5
PINSRB              Vdq,Ry,Ib             nil               [       0x66 0x0F 0x3A 0x20 /r:reg ib]  s:SSE4, t:SSE, w:RW|R|R, e:5
INSERTPS            Vdq,Md,Ib             nil               [       0x66 0x0F 0x3A 0x21 /r:mem ib]  s:SSE4, t:SSE, w:RW|R|R, e:5
INSERTPS            Vdq,Udq,Ib            nil               [       0x66 0x0F 0x3A 0x21 /r:reg ib]  s:SSE4, t:SSE, w:RW|R|R, e:5
PINSRD              Vdq,Ed,Ib             nil               [       0x66 0x0F 0x3A 0x22 /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:5
PINSRQ              Vdq,Eq,Ib             nil               [  rexw 0x66 0x0F 0x3A 0x22 /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:5

# 0x30 - 0x3F

# 0x40 - 0x4F
DPPS                Vx,Wx,Ib              nil               [       0x66 0x0F 0x3A 0x40 /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:2
DPPD                Vdq,Wdq,Ib            nil               [       0x66 0x0F 0x3A 0x41 /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:2
MPSADBW             Vdq,Wdq,Ib            nil               [       0x66 0x0F 0x3A 0x42 /r ib]      s:SSE4, t:SSE, w:RW|R|R, e:4
PCLMULQDQ           Vdq,Wdq,Ib            nil               [       0x66 0x0F 0x3A 0x44 /r ib]      s:PCLMULQDQ, t:PCLMULQDQ, w:RW|R|R, e:4

# 0x50 - 0x5F

# 0x60 - 0x6F
PCMPESTRM           Vdq,Wdq,Ib            yAX,yDX,XMM0,Fv   [       0x66 0x0F 0x3A 0x60 /r ib]      s:SSE42, t:SSE, w:R|R|R|R|R|W|W, f:PCMPSTR, e:4
PCMPESTRI           Vdq,Wdq,Ib            yAX,yDX,yCX,Fv    [       0x66 0x0F 0x3A 0x61 /r ib]      s:SSE42, t:SSE, w:R|R|R|R|R|W|W, f:PCMPSTR, e:4
PCMPISTRM           Vdq,Wdq,Ib            XMM0,Fv           [       0x66 0x0F 0x3A 0x62 /r ib]      s:SSE42, t:SSE, w:R|R|R|W|W, f:PCMPSTR, e:4
PCMPISTRI           Vdq,Wdq,Ib            yCX,Fv            [       0x66 0x0F 0x3A 0x63 /r ib]      s:SSE42, t:SSE, w:R|R|R|W|W, f:PCMPSTR, e:4

# 0x70 - 0x7F

# 0x80 - 0x8F

# 0x90 - 0x9F

# 0xA0 - 0xAF

# 0xB0 - 0xBF

# 0xC0 - 0xCF
SHA1RNDS4           Vdq,Wdq,Ib            nil               [         NP 0x0F 0x3A 0xCC /r ib]      s:SHA, t:SHA, w:RW|R|R, e:4
GF2P8AFFINEQB       Vdq,Wdq,Ib            nil               [       0x66 0x0F 0x3A 0xCE /r ib]      s:GFNI, t:GFNI, w:RW|R|R, e:4
GF2P8AFFINEINVQB    Vdq,Wdq,Ib            nil               [       0x66 0x0F 0x3A 0xCF /r ib]      s:GFNI, t:GFNI, w:RW|R|R, e:4

# 0xD0 - 0xDF
AESKEYGENASSIST     Vdq,Wdq,Ib            nil               [       0x66 0x0F 0x3A 0xDF /r ib]      s:AES, t:AES, w:W|R|R, e:4

# 0xE0 - 0xEF

# 0xF0 - 0xFF
HRESET              Ib                    EAX               [       0xF3 0x0F 0x3A 0xF0 /0xC0 ib]   s:HRESET, t:HRESET, w:N|R, m:KERNEL|NOV86|NOTSX
