SSE5 instruction table
authorH. Peter Anvin <hpa@zytor.com>
Tue, 18 Sep 2007 19:23:21 +0000 (12:23 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 18 Sep 2007 19:23:21 +0000 (12:23 -0700)
Implement the full SSE5 instruction table.

insns.dat

index fcf0bec..5214ee5 100644 (file)
--- a/insns.dat
+++ b/insns.dat
@@ -2022,6 +2022,24 @@ POPCNT           reg32,rm32              \321\333\2\x0F\xB8\110          NEHALEM
 POPCNT         reg64,rm32              \324\333\2\x0F\xB8\110          NEHALEM,X64
 
 ; AMD SSE5 instructions
+
+; Four operands with DREX
+FMADDPS                xmmreg,=0,xmmreg,xmmrm  \160\2\x0F\x24\170\132          SSE5,AMD
+FMADDPS                xmmreg,=0,xmmrm,xmmreg  \164\2\x0F\x24\170\123          SSE5,AMD
+FMADDPS                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x04\121          SSE5,AMD
+FMADDPS                xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x04\112          SSE5,AMD
+FMADDPD                xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x01\132          SSE5,AMD
+FMADDPD                xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x01\123          SSE5,AMD
+FMADDPD                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x05\121          SSE5,AMD
+FMADDPD                xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x05\112          SSE5,AMD
+FMADDSS                xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x02\132          SSE5,AMD
+FMADDSS                xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x02\123          SSE5,AMD
+FMADDSS                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x06\121          SSE5,AMD
+FMADDSS                xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x06\112          SSE5,AMD
+FMADDSD                xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x03\132          SSE5,AMD
+FMADDSD                xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x03\123          SSE5,AMD
+FMADDSD                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x07\121          SSE5,AMD
+FMADDSD                xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x07\112          SSE5,AMD
 FMSUBPS                xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x08\132          SSE5,AMD
 FMSUBPS                xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x08\123          SSE5,AMD
 FMSUBPS                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x0C\121          SSE5,AMD
@@ -2038,3 +2056,133 @@ FMSUBSD         xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x0B\132          SSE5,AMD
 FMSUBSD                xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x0B\123          SSE5,AMD
 FMSUBSD                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x0F\121          SSE5,AMD
 FMSUBSD                xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x0F\112          SSE5,AMD
+FMNADDPS       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x10\132          SSE5,AMD
+FMNADDPS       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x10\123          SSE5,AMD
+FMNADDPS       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x14\121          SSE5,AMD
+FMNADDPS       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x14\112          SSE5,AMD
+FMNADDPD       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x11\132          SSE5,AMD
+FMNADDPD       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x11\123          SSE5,AMD
+FMNADDPD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x15\121          SSE5,AMD
+FMNADDPD       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x15\112          SSE5,AMD
+FMNADDSS       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x12\132          SSE5,AMD
+FMNADDSS       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x12\123          SSE5,AMD
+FMNADDSS       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x16\121          SSE5,AMD
+FMNADDSS       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x16\112          SSE5,AMD
+FMNADDSD       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x13\132          SSE5,AMD
+FMNADDSD       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x13\123          SSE5,AMD
+FMNADDSD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x17\121          SSE5,AMD
+FMNADDSD       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x17\112          SSE5,AMD
+FMNSUBPS       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x18\132          SSE5,AMD
+FMNSUBPS       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x18\123          SSE5,AMD
+FMNSUBPS       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x1C\121          SSE5,AMD
+FMNSUBPS       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x1C\112          SSE5,AMD
+FMNSUBPD       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x19\132          SSE5,AMD
+FMNSUBPD       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x19\123          SSE5,AMD
+FMNSUBPD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x1D\121          SSE5,AMD
+FMNSUBPD       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x1D\112          SSE5,AMD
+FMNSUBSS       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x1A\132          SSE5,AMD
+FMNSUBSS       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x1A\123          SSE5,AMD
+FMNSUBSS       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x1E\121          SSE5,AMD
+FMNSUBSS       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x1E\112          SSE5,AMD
+FMNSUBSD       xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x1B\132          SSE5,AMD
+FMNSUBSD       xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x1B\123          SSE5,AMD
+FMNSUBSD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x1F\121          SSE5,AMD
+FMNSUBSD       xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x1F\112          SSE5,AMD
+COMPS          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x2C\121\27       SSE5,AMD
+COMPD          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x2D\121\27       SSE5,AMD
+COMSS          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x2E\121\27       SSE5,AMD
+COMSD          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x2F\121\27       SSE5,AMD
+PCOMB          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x4C\121\27       SSE5,AMD
+PCOMW          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x4D\121\27       SSE5,AMD
+PCOMD          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x4E\121\27       SSE5,AMD
+PCOMQ          xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x4F\121\27       SSE5,AMD
+PCOMUB         xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x6C\121\27       SSE5,AMD
+PCOMUW         xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x6D\121\27       SSE5,AMD
+PCOMUD         xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x6E\121\27       SSE5,AMD
+PCOMUQ         xmmreg,xmmreg,xmmrm,imm \160\3\x0F\x25\x6F\121\27       SSE5,AMD
+PERMPS         xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x20\132          SSE5,AMD
+PERMPS         xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x20\123          SSE5,AMD
+PERMPS         xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x24\121          SSE5,AMD
+PERMPS         xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x24\112          SSE5,AMD
+PERMPD         xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x21\132          SSE5,AMD
+PERMPD         xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x21\123          SSE5,AMD
+PERMPD         xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x25\121          SSE5,AMD
+PERMPD         xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x25\112          SSE5,AMD
+PCMOV          xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x22\132          SSE5,AMD
+PCMOV          xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x22\123          SSE5,AMD
+PCMOV          xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x26\121          SSE5,AMD
+PCMOV          xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x26\112          SSE5,AMD
+PPERM          xmmreg,=0,xmmreg,xmmrm  \160\3\x0F\x24\x23\132          SSE5,AMD
+PPERM          xmmreg,=0,xmmrm,xmmreg  \164\3\x0F\x24\x23\123          SSE5,AMD
+PPERM          xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x27\121          SSE5,AMD
+PPERM          xmmreg,xmmrm,xmmreg,=0  \164\3\x0F\x24\x27\112          SSE5,AMD
+PMACSSWW       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x85\121          SSE5,AMD
+PMACSWW                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x95\121          SSE5,AMD
+PMACSSWD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x86\121          SSE5,AMD
+PMACSWD                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x96\121          SSE5,AMD
+PMACSSDD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x8E\121          SSE5,AMD
+PMACSDD                xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x9E\121          SSE5,AMD
+PMACSSDQL      xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x87\121          SSE5,AMD
+PMACSDQL       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x97\121          SSE5,AMD
+PMACSSDQH      xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x8F\121          SSE5,AMD
+PMACSDQH       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\x9F\121          SSE5,AMD
+PMADCSSWD      xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\xA6\121          SSE5,AMD
+PMADCSWD       xmmreg,xmmreg,xmmrm,=0  \160\3\x0F\x24\xB6\121          SSE5,AMD
+
+; Three operands with DREX
+PROTB          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x40\121          SSE5,AMD
+PROTB          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x40\112          SSE5,AMD
+PROTW          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x41\121          SSE5,AMD
+PROTW          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x41\112          SSE5,AMD
+PROTD          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x42\121          SSE5,AMD
+PROTD          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x42\112          SSE5,AMD
+PROTQ          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x43\121          SSE5,AMD
+PROTQ          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x43\112          SSE5,AMD
+PSHLB          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x44\121          SSE5,AMD
+PSHLB          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x44\112          SSE5,AMD
+PSHLW          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x45\121          SSE5,AMD
+PSHLW          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x45\112          SSE5,AMD
+PSHLD          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x46\121          SSE5,AMD
+PSHLD          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x46\112          SSE5,AMD
+PSHLQ          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x47\121          SSE5,AMD
+PSHLQ          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x47\112          SSE5,AMD
+PSHAB          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x48\121          SSE5,AMD
+PSHAB          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x48\112          SSE5,AMD
+PSHAW          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x49\121          SSE5,AMD
+PSHAW          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x49\112          SSE5,AMD
+PSHAD          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x4A\121          SSE5,AMD
+PSHAD          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x4A\112          SSE5,AMD
+PSHAQ          xmmreg,xmmreg,xmmrm     \160\3\x0F\x24\x4B\121          SSE5,AMD
+PSHAQ          xmmreg,xmmrm,xmmreg     \164\3\x0F\x24\x4B\112          SSE5,AMD
+
+; Non-DREX
+FRCZPS         xmmreg,xmmrm            \3\x0F\x7A\x10\110              SSE5,AMD
+FRCZPD         xmmreg,xmmrm            \3\x0F\x7A\x11\110              SSE5,AMD
+FRCZSS         xmmreg,xmmrm            \3\x0F\x7A\x12\110              SSE5,AMD
+FRCZSD         xmmreg,xmmrm            \3\x0F\x7A\x13\110              SSE5,AMD
+CVTPH2PS       xmmreg,xmmrm            \3\x0F\x7A\x30\110              SSE5,AMD,SQ
+CVTPS2PH       xmmrm,xmmreg            \3\x0F\x7A\x31\101              SSE5,AMD,SQ
+PHADDBW                xmmreg,xmmrm            \3\x0F\x7A\x41\110              SSE5,AMD
+PHADDBD                xmmreg,xmmrm            \3\x0F\x7A\x42\110              SSE5,AMD
+PHADDBQ                xmmreg,xmmrm            \3\x0F\x7A\x43\110              SSE5,AMD
+PHADDWD                xmmreg,xmmrm            \3\x0F\x7A\x46\110              SSE5,AMD
+PHADDWQ                xmmreg,xmmrm            \3\x0F\x7A\x47\110              SSE5,AMD
+PHADDDQ                xmmreg,xmmrm            \3\x0F\x7A\x4B\110              SSE5,AMD
+PHADDUBW       xmmreg,xmmrm            \3\x0F\x7A\x51\110              SSE5,AMD
+PHADDUBD       xmmreg,xmmrm            \3\x0F\x7A\x52\110              SSE5,AMD
+PHADDUBQ       xmmreg,xmmrm            \3\x0F\x7A\x53\110              SSE5,AMD
+PHADDUWD       xmmreg,xmmrm            \3\x0F\x7A\x56\110              SSE5,AMD
+PHADDUWQ       xmmreg,xmmrm            \3\x0F\x7A\x57\110              SSE5,AMD
+PHADDUDQ       xmmreg,xmmrm            \3\x0F\x7A\x5B\110              SSE5,AMD
+PHSUBBW                xmmreg,xmmrm            \3\x0F\x7A\x61\110              SSE5,AMD
+PHSUBWD                xmmreg,xmmrm            \3\x0F\x7A\x62\110              SSE5,AMD
+PHSUBDQ                xmmreg,xmmrm            \3\x0F\x7A\x63\110              SSE5,AMD
+PROTB          xmmreg,xmmrm,imm        \3\x0F\x7B\x40\110\26           SSE5,AMD
+PROTW          xmmreg,xmmrm,imm        \3\x0F\x7B\x41\110\26           SSE5,AMD
+PROTD          xmmreg,xmmrm,imm        \3\x0F\x7B\x42\110\26           SSE5,AMD
+PROTQ          xmmreg,xmmrm,imm        \3\x0F\x7B\x43\110\26           SSE5,AMD
+PTEST          xmmreg,xmmrm            \366\3\x0F\x38\x17\110          SSE5,AMD
+ROUNDPS                xmmreg,xmmrm,imm        \366\3\x0F\x3A\x08\110\26       SSE5,AMD
+ROUNDPD                xmmreg,xmmrm,imm        \366\3\x0F\x3A\x08\110\26       SSE5,AMD
+ROUNDSS                xmmreg,xmmrm,imm        \366\3\x0F\x3A\x08\110\26       SSE5,AMD
+ROUNDSD        xmmreg,xmmrm,imm        \366\3\x0F\x3A\x08\110\26       SSE5,AMD