x86 instruction reference
1134 mnemonics across 799 pages.
A
AAAASCII Adjust After AdditionAADASCII Adjust AX Before DivisionAAMASCII Adjust AX After MultiplyAASASCII Adjust AL After SubtractionADCAdd With CarryADCXUnsigned Integer Addition of Two Operands With Carry FlagADDAddADDPDAdd Packed Double Precision Floating-Point ValuesADDPSAdd Packed Single Precision Floating-Point ValuesADDSDAdd Scalar Double Precision Floating-Point ValuesADDSSAdd Scalar Single Precision Floating-Point ValuesADDSUBPDPacked Double Precision Floating-Point Add/SubtractADDSUBPSPacked Single Precision Floating-Point Add/SubtractAESDECPerform One Round of an AES Decryption FlowAESDEC128KLPerform Ten Rounds of AES Decryption Flow With Key Locker Using 128-BitAESDEC256KLPerform 14 Rounds of AES Decryption Flow With Key Locker Using 256-Bit KeyAESDECLASTPerform Last Round of an AES Decryption FlowAESDECWIDE128KLPerform Ten Rounds of AES Decryption Flow With Key Locker on 8 BlocksAESDECWIDE256KLPerform 14 Rounds of AES Decryption Flow With Key Locker on 8 BlocksAESENCPerform One Round of an AES Encryption FlowAESENC128KLPerform Ten Rounds of AES Encryption Flow With Key Locker Using 128-Bit KeyAESENC256KLPerform 14 Rounds of AES Encryption Flow With Key Locker Using 256-Bit KeyAESENCLASTPerform Last Round of an AES Encryption FlowAESENCWIDE128KLPerform Ten Rounds of AES Encryption Flow With Key Locker on 8 BlocksAESENCWIDE256KLPerform 14 Rounds of AES Encryption Flow With Key Locker on 8 BlocksAESIMCPerform the AES InvMixColumn TransformationAESKEYGENASSISTAES Round Key Generation AssistANDLogical ANDANDNLogical AND NOTANDNPDBitwise Logical AND NOT of Packed Double Precision Floating-Point ValuesANDNPSBitwise Logical AND NOT of Packed Single Precision Floating-Point ValuesANDPDBitwise Logical AND of Packed Double Precision Floating-Point ValuesANDPSBitwise Logical AND of Packed Single Precision Floating-Point ValuesARPLAdjust RPL Field of Segment Selector
B
BEXTRBit Field ExtractBLENDPDBlend Packed Double Precision Floating-Point ValuesBLENDPSBlend Packed Single Precision Floating-Point ValuesBLENDVPDVariable Blend Packed Double Precision Floating-Point ValuesBLENDVPSVariable Blend Packed Single Precision Floating-Point ValuesBLSIExtract Lowest Set Isolated BitBLSMSKGet Mask Up to Lowest Set BitBLSRReset Lowest Set BitBNDCLCheck Lower BoundBNDCU, BNDCNCheck Upper BoundBNDLDXLoad Extended Bounds Using Address TranslationBNDMKMake BoundsBNDMOVMove BoundsBNDSTXStore Extended Bounds Using Address TranslationBOUNDCheck Array Index Against BoundsBSFBit Scan ForwardBSRBit Scan ReverseBSWAPByte SwapBTBit TestBTCBit Test and ComplementBTRBit Test and ResetBTSBit Test and SetBZHIZero High Bits Starting with Specified Bit Position
C
CALLCall ProcedureCBW, CWDE, CDQEConvert Byte to Word/Convert Word to Doubleword/Convert Doubleword toCLACClear AC Flag in EFLAGS RegisterCLCClear Carry FlagCLDClear Direction FlagCLDEMOTECache Line DemoteCLFLUSHFlush Cache LineCLFLUSHOPTFlush Cache Line OptimizedCLIClear Interrupt FlagCLRSSBSYClear Busy Flag in a Supervisor Shadow Stack TokenCLTSClear Task-Switched Flag in CR0CLUIClear User Interrupt FlagCLWBCache Line Write BackCMCComplement Carry FlagCMOVccConditional MoveCMPCompare Two OperandsCMPccXADDCompare and Add if Condition is MetCMPPDCompare Packed Double Precision Floating-Point ValuesCMPPSCompare Packed Single Precision Floating-Point ValuesCMPS, CMPSB, CMPSW, CMPSD, CMPSQCompare String OperandsCMPSDCompare Scalar Double Precision Floating-Point ValueCMPSSCompare Scalar Single Precision Floating-Point ValueCMPXCHGCompare and ExchangeCMPXCHG8B, CMPXCHG16BCompare and Exchange BytesCOMISDCompare Scalar Ordered Double Precision Floating-Point Values and Set EFLAGSCOMISSCompare Scalar Ordered Single Precision Floating-Point Values and Set EFLAGSCPUIDCPU IdentificationCRC32Accumulate CRC32 ValueCVTDQ2PDConvert Packed Doubleword Integers to Packed Double Precision Floating-PointCVTDQ2PSConvert Packed Doubleword Integers to Packed Single Precision Floating-PointCVTPD2DQConvert Packed Double Precision Floating-Point Values to Packed DoublewordCVTPD2PIConvert Packed Double Precision Floating-Point Values to Packed Dword IntegersCVTPD2PSConvert Packed Double Precision Floating-Point Values to Packed Single PrecisionCVTPI2PDConvert Packed Dword Integers to Packed Double Precision Floating-Point ValuesCVTPI2PSConvert Packed Dword Integers to Packed Single Precision Floating-Point ValuesCVTPS2DQConvert Packed Single Precision Floating-Point Values to Packed SignedCVTPS2PDConvert Packed Single Precision Floating-Point Values to Packed Double PrecisionCVTPS2PIConvert Packed Single Precision Floating-Point Values to Packed Dword IntegersCVTSD2SIConvert Scalar Double Precision Floating-Point Value to Signed IntegerCVTSD2SSConvert Scalar Double Precision Floating-Point Value to Scalar Single PrecisionCVTSI2SDConvert Signed Integer to Scalar Double Precision Floating-Point ValueCVTSI2SSConvert Signed Integer to Scalar Single Precision Floating-Point ValueCVTSS2SDConvert Scalar Single Precision Floating-Point Value to Scalar Double PrecisionCVTSS2SIConvert Scalar Single Precision Floating-Point Value to Signed IntegerCVTTPD2DQConvert with Truncation Packed Double Precision Floating-Point Values toCVTTPD2PIConvert With Truncation Packed Double Precision Floating-Point Values to PackedCVTTPS2DQConvert With Truncation Packed Single Precision Floating-Point Values to PackedCVTTPS2PIConvert With Truncation Packed Single Precision Floating-Point Values to PackedCVTTSD2SIConvert With Truncation Scalar Double Precision Floating-Point Value to SignedCVTTSS2SIConvert With Truncation Scalar Single Precision Floating-Point Value to SignedCWD, CDQ, CQOConvert Word to Doubleword/Convert Doubleword to Quadword
D
DAADecimal Adjust AL After AdditionDASDecimal Adjust AL After SubtractionDECDecrement by 1DIVUnsigned DivideDIVPDDivide Packed Double Precision Floating-Point ValuesDIVPSDivide Packed Single Precision Floating-Point ValuesDIVSDDivide Scalar Double Precision Floating-Point ValueDIVSSDivide Scalar Single Precision Floating-Point ValuesDPPDDot Product of Packed Double Precision Floating-Point ValuesDPPSDot Product of Packed Single Precision Floating-Point Values
E
EMMSEmpty MMX Technology StateENCODEKEY128Encode 128-Bit Key With Key LockerENCODEKEY256Encode 256-Bit Key With Key LockerENDBR32Terminate an Indirect Branch in 32-bit and Compatibility ModeENDBR64Terminate an Indirect Branch in 64-bit ModeENQCMDEnqueue CommandENQCMDSEnqueue Command SupervisorENTERMake Stack Frame for Procedure ParametersERETSEvent Return to SupervisorERETUEvent Return to UserEXTRACTPSExtract Packed Floating-Point Values
F
F2XM1Compute 2x1FABSAbsolute ValueFADD, FADDP, FIADDAddFBLDLoad Binary Coded DecimalFBSTPStore BCD Integer and PopFCHSChange SignFCLEX, FNCLEXClear ExceptionsFCMOVccFloating-Point Conditional MoveFCOM, FCOMP, FCOMPPCompare Floating-Point ValuesFCOMI, FCOMIP, FUCOMI, FUCOMIPCompare Floating-Point Values and Set EFLAGSFCOSCosineFDECSTPDecrement Stack-Top PointerFDIV, FDIVP, FIDIVDivideFDIVR, FDIVRP, FIDIVRReverse DivideFFREEFree Floating-Point RegisterFICOM, FICOMPCompare IntegerFILDLoad IntegerFINCSTPIncrement Stack-Top PointerFINIT, FNINITInitialize Floating-Point UnitFIST, FISTPStore IntegerFISTTPStore Integer With TruncationFLDLoad Floating-Point ValueFLDCWLoad x87 FPU Control WordFLDENVLoad x87 FPU EnvironmentFMUL, FMULP, FIMULMultiplyFNOPNo OperationFPATANPartial ArctangentFPREMPartial RemainderFPREM1Partial RemainderFPTANPartial TangentFRNDINTRound to IntegerFRSTORRestore x87 FPU StateFSAVE, FNSAVEStore x87 FPU StateFSCALEScaleFSINSineFSINCOSSine and CosineFSQRTSquare RootFST, FSTPStore Floating-Point ValueFSTCW, FNSTCWStore x87 FPU Control WordFSTENV, FNSTENVStore x87 FPU EnvironmentFSTSW, FNSTSWStore x87 FPU Status WordFSUB, FSUBP, FISUBSubtractFSUBR, FSUBRP, FISUBRReverse SubtractFTSTTESTFUCOM, FUCOMP, FUCOMPPUnordered Compare Floating-Point ValuesFXAMExamine Floating-PointFXCHExchange Register ContentsFXRSTORRestore x87 FPU, MMX, XMM, and MXCSR StateFXSAVESave x87 FPU, MMX Technology, and SSE StateFXTRACTExtract Exponent and SignificandFYL2XCompute y log2xFYL2XP1Compute y log2(x +1)
G
GETSEC[CAPABILITIES]Report the SMX CapabilitiesGETSEC[ENTERACCS]Execute Authenticated Chipset CodeGETSEC[EXITAC]Exit Authenticated Code Execution ModeGETSEC[PARAMETERS]Report the SMX ParametersGETSEC[SENTER]Enter a Measured EnvironmentGETSEC[SEXIT]Exit Measured EnvironmentGETSEC[SMCTRL]SMX Mode ControlGETSEC[WAKEUP]Wake Up Sleeping Processors in Measured EnvironmentGF2P8AFFINEINVQBGalois Field Affine Transformation InverseGF2P8AFFINEQBGalois Field Affine TransformationGF2P8MULBGalois Field Multiply Bytes
H
HADDPDPacked Double Precision Floating-Point Horizontal AddHADDPSPacked Single Precision Floating-Point Horizontal AddHLTHaltHRESETHistory ResetHSUBPDPacked Double Precision Floating-Point Horizontal SubtractHSUBPSPacked Single Precision Floating-Point Horizontal Subtract
I
IDIVSigned DivideIMULSigned MultiplyINInput From PortINCIncrement by 1INCSSPD, INCSSPQIncrement Shadow Stack PointerINS, INSB, INSW, INSDInput from Port to StringINSERTPSInsert Scalar Single Precision Floating-Point ValueINT n, INTO, INT3, INT1Call to Interrupt ProcedureINVDInvalidate Internal CachesINVLPGInvalidate TLB EntriesINVPCIDInvalidate Process-Context IdentifierIRET, IRETD, IRETQInterrupt Return
J
K
KADDW, KADDB, KADDQ, KADDDADD Two MasksKANDNW, KANDNB, KANDNQ, KANDNDBitwise Logical AND NOT MasksKANDW, KANDB, KANDQ, KANDDBitwise Logical AND MasksKMOVW, KMOVB, KMOVQ, KMOVDMove From and to Mask RegistersKNOTW, KNOTB, KNOTQ, KNOTDNOT Mask RegisterKORTESTW, KORTESTB, KORTESTQ, KORTESTDOR Masks and Set FlagsKORW, KORB, KORQ, KORDBitwise Logical OR MasksKSHIFTLW, KSHIFTLB, KSHIFTLQ, KSHIFTLDShift Left Mask RegistersKSHIFTRW, KSHIFTRB, KSHIFTRQ, KSHIFTRDShift Right Mask RegistersKTESTW, KTESTB, KTESTQ, KTESTDPacked Bit Test Masks and Set FlagsKUNPCKBW, KUNPCKWD, KUNPCKDQUnpack for Mask RegistersKXNORW, KXNORB, KXNORQ, KXNORDBitwise Logical XNOR MasksKXORW, KXORB, KXORQ, KXORDBitwise Logical XOR Masks
L
LAHFLoad Status Flags Into AH RegisterLARLoad Access RightsLDDQULoad Unaligned Integer 128 BitsLDMXCSRLoad MXCSR RegisterLDS, LES, LFS, LGS, LSSLoad Far PointerLDTILECFGLoad Tile ConfigurationLEALoad Effective AddressLEAVEHigh Level Procedure ExitLFENCELoad FenceLGDT, LIDTLoad Global/Interrupt Descriptor Table RegisterLKGSLoad Kernel GS BaseLLDTLoad Local Descriptor Table RegisterLMSWLoad Machine Status WordLOADIWKEYLoad Internal Wrapping Key With Key LockerLOCKAssert LOCK# Signal PrefixLODS, LODSB, LODSW, LODSD, LODSQLoad StringLOOP, LOOPccLoop According to ECX CounterLSLLoad Segment LimitLTRLoad Task RegisterLZCNTCount the Number of Leading Zero Bits
M
MASKMOVDQUStore Selected Bytes of Double QuadwordMASKMOVQStore Selected Bytes of QuadwordMAXPDMaximum of Packed Double Precision Floating-Point ValuesMAXPSMaximum of Packed Single Precision Floating-Point ValuesMAXSDReturn Maximum Scalar Double Precision Floating-Point ValueMAXSSReturn Maximum Scalar Single Precision Floating-Point ValueMFENCEMemory FenceMINPDMinimum of Packed Double Precision Floating-Point ValuesMINPSMinimum of Packed Single Precision Floating-Point ValuesMINSDReturn Minimum Scalar Double Precision Floating-Point ValueMINSSReturn Minimum Scalar Single Precision Floating-Point ValueMONITORSet Up Monitor AddressMOVMoveMOVMove to/from Control RegistersMOVMove to/from Debug RegistersMOVAPDMove Aligned Packed Double Precision Floating-Point ValuesMOVAPSMove Aligned Packed Single Precision Floating-Point ValuesMOVBEMove Data After Swapping BytesMOVD, MOVQMove Doubleword/Move QuadwordMOVDDUPReplicate Double Precision Floating-Point ValuesMOVDIR64BMove 64 Bytes as Direct StoreMOVDIRIMove Doubleword as Direct StoreMOVDQ2QMove Quadword from XMM to MMX Technology RegisterMOVDQA, VMOVDQA32, VMOVDQA64Move Aligned Packed Integer ValuesMOVDQU, VMOVDQU8, VMOVDQU16, VMOVDQU32, VMOVDQU64Move Unaligned Packed Integer ValuesMOVHLPSMove Packed Single Precision Floating-Point Values High to LowMOVHPDMove High Packed Double Precision Floating-Point ValueMOVHPSMove High Packed Single Precision Floating-Point ValuesMOVLHPSMove Packed Single Precision Floating-Point Values Low to HighMOVLPDMove Low Packed Double Precision Floating-Point ValueMOVLPSMove Low Packed Single Precision Floating-Point ValuesMOVMSKPDExtract Packed Double Precision Floating-Point Sign MaskMOVMSKPSExtract Packed Single Precision Floating-Point Sign MaskMOVNTDQStore Packed Integers Using Non-Temporal HintMOVNTDQALoad Double Quadword Non-Temporal Aligned HintMOVNTIStore Doubleword Using Non-Temporal HintMOVNTPDStore Packed Double Precision Floating-Point Values Using Non-Temporal HintMOVNTPSStore Packed Single Precision Floating-Point Values Using Non-Temporal HintMOVNTQStore of Quadword Using Non-Temporal HintMOVQMove QuadwordMOVQ2DQMove Quadword from MMX Technology to XMM RegisterMOVS, MOVSB, MOVSW, MOVSD, MOVSQMove Data From String to StringMOVSDMove or Merge Scalar Double Precision Floating-Point ValueMOVSHDUPReplicate Single Precision Floating-Point ValuesMOVSLDUPReplicate Single Precision Floating-Point ValuesMOVSSMove or Merge Scalar Single Precision Floating-Point ValueMOVSX, MOVSXDMove With Sign-ExtensionMOVUPDMove Unaligned Packed Double Precision Floating-Point ValuesMOVUPSMove Unaligned Packed Single Precision Floating-Point ValuesMOVZXMove With Zero-ExtendMPSADBWCompute Multiple Packed Sums of Absolute DifferenceMULUnsigned MultiplyMULPDMultiply Packed Double Precision Floating-Point ValuesMULPSMultiply Packed Single Precision Floating-Point ValuesMULSDMultiply Scalar Double Precision Floating-Point ValueMULSSMultiply Scalar Single Precision Floating-Point ValuesMULXUnsigned Multiply Without Affecting FlagsMWAITMonitor Wait
N
O
ORLogical Inclusive ORORPDBitwise Logical OR of Packed Double Precision Floating-Point ValuesORPSBitwise Logical OR of Packed Single Precision Floating-Point ValuesOUTOutput to PortOUTS, OUTSB, OUTSW, OUTSDOutput String to Port
P
PABSB, PABSW, PABSD, PABSQPacked Absolute ValuePACKSSWB, PACKSSDWPack With Signed SaturationPACKUSDWPack With Unsigned SaturationPACKUSWBPack With Unsigned SaturationPADDB, PADDW, PADDD, PADDQAdd Packed IntegersPADDSB, PADDSWAdd Packed Signed Integers with Signed SaturationPADDUSB, PADDUSWAdd Packed Unsigned Integers With Unsigned SaturationPALIGNRPacked Align RightPANDLogical ANDPANDNLogical AND NOTPAUSESpin Loop HintPAVGB, PAVGWAverage Packed IntegersPBLENDVBVariable Blend Packed BytesPBLENDWBlend Packed WordsPBNDKBPlatform Bind Key to Binary Large ObjectPCLMULQDQCarry-Less Multiplication QuadwordPCMPEQB, PCMPEQW, PCMPEQDCompare Packed Data for EqualPCMPEQQCompare Packed Qword Data for EqualPCMPESTRIPacked Compare Explicit Length Strings, Return IndexPCMPESTRMPacked Compare Explicit Length Strings, Return MaskPCMPGTB, PCMPGTW, PCMPGTDCompare Packed Signed Integers for Greater ThanPCMPGTQCompare Packed Data for Greater ThanPCMPISTRIPacked Compare Implicit Length Strings, Return IndexPCMPISTRMPacked Compare Implicit Length Strings, Return MaskPCONFIGPlatform ConfigurationPDEPParallel Bits DepositPEXTParallel Bits ExtractPEXTRB, PEXTRD, PEXTRQExtract Byte/Dword/QwordPEXTRWExtract WordPHADDSWPacked Horizontal Add and SaturatePHADDW, PHADDDPacked Horizontal AddPHMINPOSUWPacked Horizontal Word MinimumPHSUBSWPacked Horizontal Subtract and SaturatePHSUBW, PHSUBDPacked Horizontal SubtractPINSRB, PINSRD, PINSRQInsert Byte/Dword/QwordPINSRWInsert WordPMADDUBSWMultiply and Add Packed Signed and Unsigned BytesPMADDWDMultiply and Add Packed IntegersPMAXSB, PMAXSW, PMAXSD, PMAXSQMaximum of Packed Signed IntegersPMAXUB, PMAXUWMaximum of Packed Unsigned IntegersPMAXUD, PMAXUQMaximum of Packed Unsigned IntegersPMINSB, PMINSWMinimum of Packed Signed IntegersPMINSD, PMINSQMinimum of Packed Signed IntegersPMINUB, PMINUWMinimum of Packed Unsigned IntegersPMINUD, PMINUQMinimum of Packed Unsigned IntegersPMOVMSKBMove Byte Mask Op/ 64/32 bit CPUIDPMOVSXPacked Move With Sign ExtendPMOVZXPacked Move With Zero ExtendPMULDQMultiply Packed Doubleword IntegersPMULHRSWPacked Multiply High With Round and ScalePMULHUWMultiply Packed Unsigned Integers and Store High ResultPMULHWMultiply Packed Signed Integers and Store High ResultPMULLD, PMULLQMultiply Packed Integers and Store Low ResultPMULLWMultiply Packed Signed Integers and Store Low ResultPMULUDQMultiply Packed Unsigned Doubleword IntegersPOPPop a Value From the StackPOPA, POPADPop All General-Purpose RegistersPOPCNTReturn the Count of Number of Bits Set to 1POPF, POPFD, POPFQPop Stack Into EFLAGS RegisterPORBitwise Logical ORPREFETCHhPrefetch Data Into CachesPREFETCHWPrefetch Data Into Caches in Anticipation of a WritePREFETCHWT1Prefetch Vector Data Into Caches With Intent to Write and T1 HintPSADBWCompute Sum of Absolute DifferencesPSHUFBPacked Shuffle BytesPSHUFDShuffle Packed DoublewordsPSHUFHWShuffle Packed High WordsPSHUFLWShuffle Packed Low WordsPSHUFWShuffle Packed WordsPSIGNB, PSIGNW, PSIGNDPacked SIGNPSLLDQShift Double Quadword Left LogicalPSLLW, PSLLD, PSLLQShift Packed Data Left LogicalPSRAW, PSRAD, PSRAQShift Packed Data Right ArithmeticPSRLDQShift Double Quadword Right LogicalPSRLW, PSRLD, PSRLQShift Packed Data Right LogicalPSUBB, PSUBW, PSUBDSubtract Packed IntegersPSUBQSubtract Packed Quadword IntegersPSUBSB, PSUBSWSubtract Packed Signed Integers With Signed SaturationPSUBUSB, PSUBUSWSubtract Packed Unsigned Integers With Unsigned SaturationPTESTLogical ComparePTWRITEWrite Data to a Processor Trace PacketPUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKHQDQUnpack High DataPUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PUNPCKLQDQUnpack Low DataPUSHPush Word, Doubleword, or Quadword Onto the StackPUSHA, PUSHADPush All General-Purpose RegistersPUSHF, PUSHFD, PUSHFQPush EFLAGS Register Onto the StackPXORLogical Exclusive OR
R
RCL, RCR, ROL, RORRotateRCPPSCompute Reciprocals of Packed Single Precision Floating-Point ValuesRCPSSCompute Reciprocal of Scalar Single Precision Floating-Point ValuesRDFSBASE, RDGSBASERead FS/GS Segment BaseRDMSRRead From Model Specific RegisterRDMSRLISTRead List of Model Specific RegistersRDPIDRead Processor IDRDPKRURead Protection Key Rights for User PagesRDPMCRead Performance-Monitoring CountersRDRANDRead Random NumberRDSEEDRead Random SEEDRDSSPD, RDSSPQRead Shadow Stack PointerRDTSCRead Time-Stamp CounterRDTSCPRead Time-Stamp Counter and Processor IDREPRepeat String Operation (Prefix)REPE, REPZRepeat String Operation While Zero (Prefix)REPNE, REPNZRepeat String Operation While Not Zero (Prefix)RETReturn From ProcedureROUNDPDRound Packed Double Precision Floating-Point ValuesROUNDPSRound Packed Single Precision Floating-Point ValuesROUNDSDRound Scalar Double Precision Floating-Point ValuesROUNDSSRound Scalar Single Precision Floating-Point ValuesRSMResume From System Management ModeRSQRTPSCompute Reciprocals of Square Roots of Packed Single Precision Floating-PointRSQRTSSCompute Reciprocal of Square Root of Scalar Single Precision Floating-Point ValueRSTORSSPRestore Saved Shadow Stack Pointer
S
SAHFStore AH Into FlagsSAL, SAR, SHL, SHRShiftSARX, SHLX, SHRXShift Without Affecting FlagsSAVEPREVSSPSave Previous Shadow Stack PointerSBBInteger Subtraction With BorrowSCAS, SCASB, SCASW, SCASDScan StringSENDUIPISend User Interprocessor InterruptSERIALIZESerialize Instruction ExecutionSETccSet Byte on ConditionSETSSBSYMark Shadow Stack BusySFENCEStore FenceSGDTStore Global Descriptor Table RegisterSHA1MSG1Perform an Intermediate Calculation for the Next Four SHA1 Message DwordsSHA1MSG2Perform a Final Calculation for the Next Four SHA1 Message DwordsSHA1NEXTECalculate SHA1 State Variable E After Four RoundsSHA1RNDS4Perform Four Rounds of SHA1 OperationSHA256MSG1Perform an Intermediate Calculation for the Next Four SHA256 MessageSHA256MSG2Perform a Final Calculation for the Next Four SHA256 Message DwordsSHA256RNDS2Perform Two Rounds of SHA256 OperationSHLDDouble Precision Shift LeftSHRDDouble Precision Shift RightSHUFPDPacked Interleave Shuffle of Pairs of Double Precision Floating-Point ValuesSHUFPSPacked Interleave Shuffle of Quadruplets of Single Precision Floating-Point ValuesSIDTStore Interrupt Descriptor Table RegisterSLDTStore Local Descriptor Table RegisterSMSWStore Machine Status WordSQRTPDSquare Root of Double Precision Floating-Point ValuesSQRTPSSquare Root of Single Precision Floating-Point ValuesSQRTSDCompute Square Root of Scalar Double Precision Floating-Point ValueSQRTSSCompute Square Root of Scalar Single Precision ValueSTACSet AC Flag in EFLAGS RegisterSTCSet Carry FlagSTDSet Direction FlagSTISet Interrupt FlagSTMXCSRStore MXCSR Register StateSTOS, STOSB, STOSW, STOSD, STOSQStore StringSTRStore Task RegisterSTTILECFGStore Tile ConfigurationSTUISet User Interrupt FlagSUBSubtractSUBPDSubtract Packed Double Precision Floating-Point ValuesSUBPSSubtract Packed Single Precision Floating-Point ValuesSUBSDSubtract Scalar Double Precision Floating-Point ValueSUBSSSubtract Scalar Single Precision Floating-Point ValueSWAPGSSwap GS Base RegisterSYSCALLFast System CallSYSENTERFast System CallSYSEXITFast Return from Fast System CallSYSRETReturn From Fast System Call
T
TCMMIMFP16PS, TCMMRLFP16PSMatrix Multiplication of Complex Tiles Accumulated intoTDPBF16PSDot Product of BF16 Tiles Accumulated into Packed Single Precision TileTDPBSSD, TDPBSUD, TDPBUSD, TDPBUUDDot Product of Signed/Unsigned Bytes with DwordTDPFP16PSDot Product of FP16 Tiles Accumulated into Packed Single Precision TileTESTLogical CompareTESTUIDetermine User Interrupt FlagTILELOADD, TILELOADDT1Load TileTILERELEASERelease Tile Op/ 64/32 bit CPUID FeatureTILESTOREDStore TileTILEZEROZero TileTPAUSETimed PAUSETZCNTCount the Number of Trailing Zero Bits
U
UCOMISDUnordered Compare Scalar Double Precision Floating-Point Values and Set EFLAGSUCOMISSUnordered Compare Scalar Single Precision Floating-Point Values and Set EFLAGSUDUndefined InstructionUIRETUser-Interrupt ReturnUMONITORUser Level Set Up Monitor AddressUMWAITUser Level Monitor WaitUNPCKHPDUnpack and Interleave High Packed Double Precision Floating-Point ValuesUNPCKHPSUnpack and Interleave High Packed Single Precision Floating-Point ValuesUNPCKLPDUnpack and Interleave Low Packed Double Precision Floating-Point ValuesUNPCKLPSUnpack and Interleave Low Packed Single Precision Floating-Point Values
V
V4FMADDPS, V4FNMADDPSPacked Single Precision Floating-Point Fused Multiply-AddV4FMADDSS, V4FNMADDSSScalar Single Precision Floating-Point Fused Multiply-AddVADDPHAdd Packed FP16 ValuesVADDSHAdd Scalar FP16 ValuesVALIGND, VALIGNQAlign Doubleword/Quadword VectorsVBCSTNEBF162PSLoad BF16 Element and Convert to FP32 Element With BroadcastVBCSTNESH2PSLoad FP16 Element and Convert to FP32 Element with BroadcastVBLENDMPD, VBLENDMPSBlend Float64/Float32 Vectors Using an OpMask ControlVBROADCASTLoad with Broadcast Floating-Point DataVCMPPHCompare Packed FP16 ValuesVCMPSHCompare Scalar FP16 ValuesVCOMISHCompare Scalar Ordered FP16 Values and Set EFLAGSVCOMPRESSPDStore Sparse Packed Double Precision Floating-Point Values Into DenseVCOMPRESSPSStore Sparse Packed Single Precision Floating-Point Values Into Dense MemoryVCVTDQ2PHConvert Packed Signed Doubleword Integers to Packed FP16 ValuesVCVTNE2PS2BF16Convert Two Packed Single Data to One Packed BF16 DataVCVTNEEBF162PSConvert Even Elements of Packed BF16 Values to FP32 ValuesVCVTNEEPH2PSConvert Even Elements of Packed FP16 Values to FP32 ValuesVCVTNEOBF162PSConvert Odd Elements of Packed BF16 Values to FP32 ValuesVCVTNEOPH2PSConvert Odd Elements of Packed FP16 Values to FP32 ValuesVCVTNEPS2BF16Convert Packed Single Data to Packed BF16 DataVCVTPD2PHConvert Packed Double Precision FP Values to Packed FP16 ValuesVCVTPD2QQConvert Packed Double Precision Floating-Point Values to Packed QuadwordVCVTPD2UDQConvert Packed Double Precision Floating-Point Values to Packed UnsignedVCVTPD2UQQConvert Packed Double Precision Floating-Point Values to Packed UnsignedVCVTPH2DQConvert Packed FP16 Values to Signed Doubleword IntegersVCVTPH2PDConvert Packed FP16 Values to FP64 ValuesVCVTPH2PS, VCVTPH2PSXConvert Packed FP16 Values to Single Precision Floating-PointVCVTPH2QQConvert Packed FP16 Values to Signed Quadword Integer ValuesVCVTPH2UDQConvert Packed FP16 Values to Unsigned Doubleword IntegersVCVTPH2UQQConvert Packed FP16 Values to Unsigned Quadword IntegersVCVTPH2UWConvert Packed FP16 Values to Unsigned Word IntegersVCVTPH2WConvert Packed FP16 Values to Signed Word IntegersVCVTPS2PHConvert Single Precision FP Value to 16-bit FP ValueVCVTPS2PHXConvert Packed Single Precision Floating-Point Values to Packed FP16 ValuesVCVTPS2QQConvert Packed Single Precision Floating-Point Values to Packed SignedVCVTPS2UDQConvert Packed Single Precision Floating-Point Values to Packed UnsignedVCVTPS2UQQConvert Packed Single Precision Floating-Point Values to Packed UnsignedVCVTQQ2PDConvert Packed Quadword Integers to Packed Double Precision Floating-PointVCVTQQ2PHConvert Packed Signed Quadword Integers to Packed FP16 ValuesVCVTQQ2PSConvert Packed Quadword Integers to Packed Single Precision Floating-PointVCVTSD2SHConvert Low FP64 Value to an FP16 ValueVCVTSD2USIConvert Scalar Double Precision Floating-Point Value to Unsigned IntegerVCVTSH2SDConvert Low FP16 Value to an FP64 ValueVCVTSH2SIConvert Low FP16 Value to Signed IntegerVCVTSH2SSConvert Low FP16 Value to FP32 ValueVCVTSH2USIConvert Low FP16 Value to Unsigned IntegerVCVTSI2SHConvert a Signed Doubleword/Quadword Integer to an FP16 ValueVCVTSS2SHConvert Low FP32 Value to an FP16 ValueVCVTSS2USIConvert Scalar Single Precision Floating-Point Value to Unsigned DoublewordVCVTTPD2QQConvert With Truncation Packed Double Precision Floating-Point Values toVCVTTPD2UDQConvert With Truncation Packed Double Precision Floating-Point Values toVCVTTPD2UQQConvert With Truncation Packed Double Precision Floating-Point Values toVCVTTPH2DQConvert with Truncation Packed FP16 Values to Signed Doubleword IntegersVCVTTPH2QQConvert with Truncation Packed FP16 Values to Signed Quadword IntegersVCVTTPH2UDQConvert with Truncation Packed FP16 Values to Unsigned DoublewordVCVTTPH2UQQConvert with Truncation Packed FP16 Values to Unsigned Quadword IntegersVCVTTPH2UWConvert Packed FP16 Values to Unsigned Word IntegersVCVTTPH2WConvert Packed FP16 Values to Signed Word IntegersVCVTTPS2QQConvert With Truncation Packed Single Precision Floating-Point Values toVCVTTPS2UDQConvert With Truncation Packed Single Precision Floating-Point Values toVCVTTPS2UQQConvert With Truncation Packed Single Precision Floating-Point Values toVCVTTSD2USIConvert With Truncation Scalar Double Precision Floating-Point Value toVCVTTSH2SIConvert with Truncation Low FP16 Value to a Signed IntegerVCVTTSH2USIConvert with Truncation Low FP16 Value to an Unsigned IntegerVCVTTSS2USIConvert With Truncation Scalar Single Precision Floating-Point Value toVCVTUDQ2PDConvert Packed Unsigned Doubleword Integers to Packed Double PrecisionVCVTUDQ2PHConvert Packed Unsigned Doubleword Integers to Packed FP16 ValuesVCVTUDQ2PSConvert Packed Unsigned Doubleword Integers to Packed Single PrecisionVCVTUQQ2PDConvert Packed Unsigned Quadword Integers to Packed Double PrecisionVCVTUQQ2PHConvert Packed Unsigned Quadword Integers to Packed FP16 ValuesVCVTUQQ2PSConvert Packed Unsigned Quadword Integers to Packed Single PrecisionVCVTUSI2SDConvert Unsigned Integer to Scalar Double Precision Floating-Point ValueVCVTUSI2SHConvert Unsigned Doubleword Integer to an FP16 ValueVCVTUSI2SSConvert Unsigned Integer to Scalar Single Precision Floating-Point ValueVCVTUW2PHConvert Packed Unsigned Word Integers to FP16 ValuesVCVTW2PHConvert Packed Signed Word Integers to FP16 ValuesVDBPSADBWDouble Block Packed Sum-Absolute-Differences (SAD) on Unsigned BytesVDIVPHDivide Packed FP16 ValuesVDIVSHDivide Scalar FP16 ValuesVDPBF16PSDot Product of BF16 Pairs Accumulated Into Packed Single PrecisionVERR, VERWVerify a Segment for Reading or WritingVEXP2PDApproximation to the Exponential 2^x of Packed Double Precision Floating-PointVEXP2PSApproximation to the Exponential 2^x of Packed Single Precision Floating-PointVEXPANDPDLoad Sparse Packed Double Precision Floating-Point Values From Dense MemoryVEXPANDPSLoad Sparse Packed Single Precision Floating-Point Values From Dense MemoryVFCMADDCPH, VFMADDCPHComplex Multiply and Accumulate FP16 ValuesVFCMADDCSH, VFMADDCSHComplex Multiply and Accumulate Scalar FP16 ValuesVFCMULCPH, VFMULCPHComplex Multiply FP16 ValuesVFCMULCSH, VFMULCSHComplex Multiply Scalar FP16 ValuesVFIXUPIMMPDFix Up Special Packed Float64 ValuesVFIXUPIMMPSFix Up Special Packed Float32 ValuesVFIXUPIMMSDFix Up Special Scalar Float64 ValueVFIXUPIMMSSFix Up Special Scalar Float32 ValueVFMADD132PD, VFMADD213PD, VFMADD231PDFused Multiply-Add of Packed DoubleVFMADD132PH, VFMADD213PH, VFMADD231PH, VFNMADD132PH, VFNMADD213PH, VFNMADD231PHFused Multiply-Add of Packed FP16 ValuesVFMADD132PS, VFMADD213PS, VFMADD231PSFused Multiply-Add of Packed SingleVFMADD132SD, VFMADD213SD, VFMADD231SDFused Multiply-Add of Scalar DoubleVFMADD132SH, VFMADD213SH, VFMADD231SH, VFNMADD132SH, VFNMADD213SH, VFNMADD231SHFused Multiply-Add of Scalar FP16 ValuesVFMADD132SS, VFMADD213SS, VFMADD231SSFused Multiply-Add of Scalar Single PrecisionVFMSUB132PD, VFMSUB213PD, VFMSUB231PDFused Multiply-Subtract of Packed DoubleVFMSUB132PH, VFMSUB213PH, VFMSUB231PH, VFNMSUB132PH, VFNMSUB213PH, VFNMSUB231PHFused Multiply-Subtract of Packed FP16 ValuesVFMSUB132PS, VFMSUB213PS, VFMSUB231PSFused Multiply-Subtract of Packed SingleVFMSUB132SD, VFMSUB213SD, VFMSUB231SDFused Multiply-Subtract of Scalar DoubleVFMSUB132SH, VFMSUB213SH, VFMSUB231SH, VFNMSUB132SH, VFNMSUB213SH, VFNMSUB231SHFused Multiply-Subtract of Scalar FP16 ValuesVFMSUB132SS, VFMSUB213SS, VFMSUB231SSFused Multiply-Subtract of Scalar SingleVFNMADD132PD, VFNMADD213PD, VFNMADD231PDFused Negative Multiply-Add of PackedVFNMADD132PS, VFNMADD213PS, VFNMADD231PSFused Negative Multiply-Add of PackedVFNMADD132SD, VFNMADD213SD, VFNMADD231SDFused Negative Multiply-Add of ScalarVFNMADD132SS, VFNMADD213SS, VFNMADD231SSFused Negative Multiply-Add of ScalarVFNMSUB132PD, VFNMSUB213PD, VFNMSUB231PDFused Negative Multiply-Subtract ofVFNMSUB132PS, VFNMSUB213PS, VFNMSUB231PSFused Negative Multiply-Subtract ofVFNMSUB132SD, VFNMSUB213SD, VFNMSUB231SDFused Negative Multiply-Subtract ofVFNMSUB132SS, VFNMSUB213SS, VFNMSUB231SSFused Negative Multiply-Subtract ofVFPCLASSPDTests Types of Packed Float64 ValuesVFPCLASSPHTest Types of Packed FP16 ValuesVFPCLASSPSTests Types of Packed Float32 ValuesVFPCLASSSDTests Type of a Scalar Float64 ValueVFPCLASSSHTest Types of Scalar FP16 ValuesVFPCLASSSSTests Type of a Scalar Float32 ValueVGATHERDPD, VGATHERQPDGather Packed Double Precision Floating-Point Values UsingVGATHERDPS, VGATHERDPDGather Packed Single, Packed Double with Signed Dword IndicesVGATHERDPS, VGATHERQPSGather Packed Single Precision Floating-Point Values UsingVGATHERQPS, VGATHERQPDGather Packed Single, Packed Double with Signed Qword IndicesVGETEXPPDConvert Exponents of Packed Double Precision Floating-Point Values to DoubleVGETEXPPHConvert Exponents of Packed FP16 Values to FP16 ValuesVGETEXPPSConvert Exponents of Packed Single Precision Floating-Point Values to SingleVGETEXPSDConvert Exponents of Scalar Double Precision Floating-Point Value to DoubleVGETEXPSHConvert Exponents of Scalar FP16 Values to FP16 ValuesVGETEXPSSConvert Exponents of Scalar Single Precision Floating-Point Value to SingleVGETMANTPDExtract Float64 Vector of Normalized Mantissas From Float64 VectorVGETMANTPHExtract FP16 Vector of Normalized Mantissas from FP16 VectorVGETMANTPSExtract Float32 Vector of Normalized Mantissas From Float32 VectorVGETMANTSDExtract Float64 of Normalized Mantissa From Float64 ScalarVGETMANTSHExtract FP16 of Normalized Mantissa from FP16 ScalarVGETMANTSSExtract Float32 Vector of Normalized Mantissa From Float32 ScalarVMASKMOVConditional SIMD Packed Loads and StoresVMAXPHReturn Maximum of Packed FP16 ValuesVMAXSHReturn Maximum of Scalar FP16 ValuesVMINPHReturn Minimum of Packed FP16 ValuesVMINSHReturn Minimum Scalar FP16 ValueVMOVSHMove Scalar FP16 ValueVMOVWMove WordVMULPHMultiply Packed FP16 ValuesVMULSHMultiply Scalar FP16 ValuesVP2INTERSECTD, VP2INTERSECTQCompute Intersection Between DWORDS/QUADWORDS to aVP4DPWSSDDot Product of Signed Words With Dword Accumulation (4-Iterations)VP4DPWSSDSDot Product of Signed Words With Dword Accumulation and SaturationVPBLENDDBlend Packed DwordsVPBLENDMB, VPBLENDMWBlend Byte/Word Vectors Using an Opmask ControlVPBLENDMD, VPBLENDMQBlend Int32/Int64 Vectors Using an OpMask ControlVPBROADCASTLoad Integer and BroadcastVPBROADCASTB, VPBROADCASTW, VPBROADCASTD, VPBROADCASTQLoad With Broadcast Integer Data From General Purpose RegisterVPBROADCASTMBroadcast Mask to Vector RegisterVPCMPB, VPCMPUBCompare Packed Byte Values Into MaskVPCMPD, VPCMPUDCompare Packed Integer Values Into MaskVPCMPQ, VPCMPUQCompare Packed Integer Values Into MaskVPCMPW, VPCMPUWCompare Packed Word Values Into MaskVPCOMPRESSB, VCOMPRESSWStore Sparse Packed Byte/Word Integer Values Into DenseVPCOMPRESSDStore Sparse Packed Doubleword Integer Values Into Dense Memory/RegisterVPCOMPRESSQStore Sparse Packed Quadword Integer Values Into Dense Memory/RegisterVPCONFLICTD, VPCONFLICTQDetect Conflicts Within a Vector of Packed Dword/Qword Values Into DenseVPDPBSUD, VPDPBSUDS, VPDPBUUD, VPDPBUUDS, VPDPBSSD, VPDPBSSDSMultiply and Add Unsigned and Signed Bytes With and WithoutVPDPBUSDMultiply and Add Unsigned and Signed BytesVPDPBUSDSMultiply and Add Unsigned and Signed Bytes With SaturationVPDPWSSDMultiply and Add Signed Word IntegersVPDPWSSDSMultiply and Add Signed Word Integers With SaturationVPDPWSUD, VPDPWSUDS, VPDPWUSD, VPDPWUSDS, VPDPWUUD, VPDPWUUDSMultiply and Add Unsigned and Signed Words With and WithoutVPERM2F128Permute Floating-Point ValuesVPERM2I128Permute Integer ValuesVPERMBPermute Packed Bytes ElementsVPERMD, VPERMWPermute Packed Doubleword/Word ElementsVPERMI2BFull Permute of Bytes From Two Tables Overwriting the IndexVPERMI2W, VPERMI2D, VPERMI2Q, VPERMI2PS, VPERMI2PDFull Permute From Two Tables Overwriting the IndexVPERMILPDPermute In-Lane of Pairs of Double Precision Floating-Point ValuesVPERMILPSPermute In-Lane of Quadruples of Single Precision Floating-Point ValuesVPERMPDPermute Double Precision Floating-Point ElementsVPERMPSPermute Single Precision Floating-Point ElementsVPERMQQwords Element PermutationVPERMT2BFull Permute of Bytes From Two Tables Overwriting a TableVPERMT2W, VPERMT2D, VPERMT2Q, VPERMT2PS, VPERMT2PDFull Permute From Two Tables Overwriting One TableVPEXPANDB, VPEXPANDWExpand Byte/Word ValuesVPEXPANDDLoad Sparse Packed Doubleword Integer Values From Dense Memory/RegisterVPEXPANDQLoad Sparse Packed Quadword Integer Values From Dense Memory/RegisterVPGATHERDD, VPGATHERDQGather Packed Dword, Packed Qword With Signed Dword IndicesVPGATHERDD, VPGATHERQDGather Packed Dword Values Using Signed Dword/Qword IndicesVPGATHERDQ, VPGATHERQQGather Packed Qword Values Using Signed Dword/Qword IndicesVPGATHERQD, VPGATHERQQGather Packed Dword, Packed Qword with Signed Qword IndicesVPLZCNTD, VPLZCNTQCount the Number of Leading Zero Bits for Packed Dword, Packed Qword ValuesVPMADD52HUQPacked Multiply of Unsigned 52-Bit Unsigned Integers and Add High 52-BitVPMADD52LUQPacked Multiply of Unsigned 52-Bit Integers and Add the Low 52-Bit ProductsVPMASKMOVConditional SIMD Integer Packed Loads and StoresVPMOVB2M, VPMOVW2M, VPMOVD2M, VPMOVQ2MConvert a Vector Register to a MaskVPMOVDB, VPMOVSDB, VPMOVUSDBDown Convert DWord to ByteVPMOVDW, VPMOVSDW, VPMOVUSDWDown Convert DWord to WordVPMOVM2B, VPMOVM2W, VPMOVM2D, VPMOVM2QConvert a Mask Register to a VectorVPMOVQB, VPMOVSQB, VPMOVUSQBDown Convert QWord to ByteVPMOVQD, VPMOVSQD, VPMOVUSQDDown Convert QWord to DWordVPMOVQW, VPMOVSQW, VPMOVUSQWDown Convert QWord to WordVPMOVWB, VPMOVSWB, VPMOVUSWBDown Convert Word to ByteVPMULTISHIFTQBSelect Packed Unaligned Bytes From Quadword SourcesVPOPCNTReturn the Count of Number of Bits Set to 1 in BYTE/WORD/DWORD/QWORDVPROLD, VPROLVD, VPROLQ, VPROLVQBit Rotate LeftVPRORD, VPRORVD, VPRORQ, VPRORVQBit Rotate RightVPSHLDConcatenate and Shift Packed Data Left LogicalVPSHLDVConcatenate and Variable Shift Packed Data Left LogicalVPSHRDConcatenate and Shift Packed Data Right LogicalVPSHRDVConcatenate and Variable Shift Packed Data Right LogicalVPSHUFBITQMBShuffle Bits From Quadword Elements Using Byte Indexes Into MaskVPSLLVW, VPSLLVD, VPSLLVQVariable Bit Shift Left LogicalVPSRAVW, VPSRAVD, VPSRAVQVariable Bit Shift Right ArithmeticVPSRLVW, VPSRLVD, VPSRLVQVariable Bit Shift Right LogicalVPTERNLOGD, VPTERNLOGQBitwise Ternary LogicVPTESTMB, VPTESTMW, VPTESTMD, VPTESTMQLogical AND and Set MaskVPTESTNMB, VPTESTNMW, VPTESTNMD, VPTESTNMQLogical NAND and SetVRANGEPDRange Restriction Calculation for Packed Pairs of Float64 ValuesVRANGEPSRange Restriction Calculation for Packed Pairs of Float32 ValuesVRANGESDRange Restriction Calculation From a Pair of Scalar Float64 ValuesVRANGESSRange Restriction Calculation From a Pair of Scalar Float32 ValuesVRCP14PDCompute Approximate Reciprocals of Packed Float64 ValuesVRCP14PSCompute Approximate Reciprocals of Packed Float32 ValuesVRCP14SDCompute Approximate Reciprocal of Scalar Float64 ValueVRCP14SSCompute Approximate Reciprocal of Scalar Float32 ValueVRCP28PDApproximation to the Reciprocal of Packed Double Precision Floating-Point ValuesVRCP28PSApproximation to the Reciprocal of Packed Single Precision Floating-Point ValuesVRCP28SDApproximation to the Reciprocal of Scalar Double Precision Floating-Point ValueVRCP28SSApproximation to the Reciprocal of Scalar Single Precision Floating-Point ValueVRCPPHCompute Reciprocals of Packed FP16 ValuesVRCPSHCompute Reciprocal of Scalar FP16 ValueVREDUCEPDPerform Reduction Transformation on Packed Float64 ValuesVREDUCEPHPerform Reduction Transformation on Packed FP16 ValuesVREDUCEPSPerform Reduction Transformation on Packed Float32 ValuesVREDUCESDPerform a Reduction Transformation on a Scalar Float64 ValueVREDUCESHPerform Reduction Transformation on Scalar FP16 ValueVREDUCESSPerform a Reduction Transformation on a Scalar Float32 ValueVRNDSCALEPDRound Packed Float64 Values to Include a Given Number of Fraction BitsVRNDSCALEPHRound Packed FP16 Values to Include a Given Number of Fraction BitsVRNDSCALEPSRound Packed Float32 Values to Include a Given Number of Fraction BitsVRNDSCALESDRound Scalar Float64 Value to Include a Given Number of Fraction BitsVRNDSCALESHRound Scalar FP16 Value to Include a Given Number of Fraction BitsVRNDSCALESSRound Scalar Float32 Value to Include a Given Number of Fraction BitsVRSQRT14PDCompute Approximate Reciprocals of Square Roots of Packed Float64 ValuesVRSQRT14PSCompute Approximate Reciprocals of Square Roots of Packed Float32 ValuesVRSQRT14SDCompute Approximate Reciprocal of Square Root of Scalar Float64 ValueVRSQRT14SSCompute Approximate Reciprocal of Square Root of Scalar Float32 ValueVRSQRT28PDApproximation to the Reciprocal Square Root of Packed Double PrecisionVRSQRT28PSApproximation to the Reciprocal Square Root of Packed Single PrecisionVRSQRT28SDApproximation to the Reciprocal Square Root of Scalar Double PrecisionVRSQRT28SSApproximation to the Reciprocal Square Root of Scalar Single Precision Floating-VRSQRTPHCompute Reciprocals of Square Roots of Packed FP16 ValuesVRSQRTSHCompute Approximate Reciprocal of Square Root of Scalar FP16 ValueVSCALEFPDScale Packed Float64 Values With Float64 ValuesVSCALEFPHScale Packed FP16 Values with FP16 ValuesVSCALEFPSScale Packed Float32 Values With Float32 ValuesVSCALEFSDScale Scalar Float64 Values With Float64 ValuesVSCALEFSHScale Scalar FP16 Values with FP16 ValuesVSCALEFSSScale Scalar Float32 Value With Float32 ValueVSHA512MSG1Perform an Intermediate Calculation for the Next Four SHA512 MessageVSHA512MSG2Perform a Final Calculation for the Next Four SHA512 Message QwordsVSHA512RNDS2Perform Two Rounds of SHA512 OperationVSM3MSG1Perform Initial Calculation for the Next Four SM3 Message WordsVSM3MSG2Perform Final Calculation for the Next Four SM3 Message WordsVSM3RNDS2Perform Two Rounds of SM3 OperationVSM4KEY4Perform Four Rounds of SM4 Key ExpansionVSM4RNDS4Performs Four Rounds of SM4 EncryptionVSQRTPHCompute Square Root of Packed FP16 ValuesVSQRTSHCompute Square Root of Scalar FP16 ValueVSUBPHSubtract Packed FP16 ValuesVSUBSHSubtract Scalar FP16 ValueVTESTPD, VTESTPSPacked Bit TestVUCOMISHUnordered Compare Scalar FP16 Values and Set EFLAGSVZEROALLZero XMM, YMM, and ZMM RegistersVZEROUPPERZero Upper Bits of YMM and ZMM Registers
W
WAIT, FWAITWaitWBINVDWrite Back and Invalidate CacheWBNOINVDWrite Back and Do Not Invalidate CacheWRFSBASE, WRGSBASEWrite FS/GS Segment BaseWRMSRWrite to Model Specific RegisterWRMSRLISTWrite List of Model Specific RegistersWRMSRNSNon-Serializing Write to Model Specific RegisterWRPKRUWrite Data to User Page Key RegisterWRSSD, WRSSQWrite to Shadow StackWRUSSD, WRUSSQWrite to User Shadow Stack
X
XABORTTransactional AbortXACQUIRE, XRELEASEHardware Lock Elision Prefix HintsXADDExchange and AddXBEGINTransactional BeginXCHGExchange Register/Memory With RegisterXENDTransactional EndXGETBVGet Value of Extended Control RegisterXLAT, XLATBTable Look-up TranslationXORLogical Exclusive ORXORPDBitwise Logical XOR of Packed Double Precision Floating-Point ValuesXORPSBitwise Logical XOR of Packed Single Precision Floating-Point ValuesXRESLDTRKResume Tracking Load AddressesXRSTORRestore Processor Extended StatesXRSTORSRestore Processor Extended States SupervisorXSAVESave Processor Extended StatesXSAVECSave Processor Extended States With CompactionXSAVEOPTSave Processor Extended States OptimizedXSAVESSave Processor Extended States SupervisorXSETBVSet Extended Control RegisterXSUSLDTRKSuspend Tracking Load AddressesXTESTTest if in Transactional Execution
The alphabetical index answers "what does this instruction do". A map answers the opposite question, the one you have when you are reading bytes: "what is opcode 8B".
A cell can hold more than one instruction. What tells them apart is shown with it: the mandatory prefix (66, F2, F3) and the ModRM reg field when the opcode extends through it (/0 to /7). REX.W does not split the map: it changes the operand size of a form that is already in the cell.
One-byte opcodes
244 occupied cells, 539 encoding forms.
Opcodes after 0F
234 occupied cells, 892 encoding forms.
Opcodes after 0F 38
196 occupied cells, 501 encoding forms.
Opcodes after 0F 3A
64 occupied cells, 133 encoding forms.
Opcodes after MAP5
25 occupied cells, 50 encoding forms.
| High | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | ||||||||||||||||
| 1 | VMOVSH EVEX | VMOVSH EVEX | VCVTPS2PHX EVEXVCVTSS2SH EVEX | |||||||||||||
| 2 | VCVTSI2SH EVEX | VCVTTSH2SI EVEX | VCVTSH2SI EVEX | VUCOMISH EVEX | VCOMISH EVEX | |||||||||||
| 3 | ||||||||||||||||
| 4 | ||||||||||||||||
| 5 | VSQRTPH EVEXVSQRTSH EVEX | VADDPH EVEXVADDSH EVEX | VMULPH EVEXVMULSH EVEX | VCVTPD2PH EVEXVCVTPH2PD EVEXVCVTSD2SH EVEXVCVTSH2SD EVEX | VCVTDQ2PH EVEXVCVTPH2DQ EVEXVCVTQQ2PH EVEXVCVTTPH2DQ EVEX | VSUBPH EVEXVSUBSH EVEX | VMINPH EVEXVMINSH EVEX | VDIVPH EVEXVDIVSH EVEX | VMAXPH EVEXVMAXSH EVEX | |||||||
| 6 | VMOVW EVEX | |||||||||||||||
| 7 | VCVTTPH2UDQ EVEXVCVTTPH2UQQ EVEXVCVTTSH2USI EVEX | VCVTPH2UDQ EVEXVCVTPH2UQQ EVEXVCVTSH2USI EVEX | VCVTTPH2QQ EVEXVCVTUDQ2PH EVEXVCVTUQQ2PH EVEX | VCVTPH2QQ EVEXVCVTUSI2SH EVEX | VCVTTPH2UW EVEXVCVTTPH2W EVEX | VCVTPH2UW EVEXVCVTPH2W EVEXVCVTUW2PH EVEXVCVTW2PH EVEX | VMOVW EVEX | |||||||||
| 8 | ||||||||||||||||
| 9 | ||||||||||||||||
| A | ||||||||||||||||
| B | ||||||||||||||||
| C | ||||||||||||||||
| D | ||||||||||||||||
| E | ||||||||||||||||
| F |
Opcodes after MAP6
37 occupied cells, 38 encoding forms.
| High | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | ||||||||||||||||
| 1 | VCVTPH2PS EVEXVCVTSH2SS EVEX | |||||||||||||||
| 2 | VSCALEFPH EVEX | VSCALEFSH EVEX | ||||||||||||||
| 3 | ||||||||||||||||
| 4 | VGETEXPPH EVEX | VGETEXPSH EVEX | VRCPPH EVEX | VRCPSH EVEX | VRSQRTPH EVEX | VRSQRTSH EVEX | ||||||||||
| 5 | VFCMADDCPH EVEX | VFCMADDCSH EVEX | ||||||||||||||
| 6 | ||||||||||||||||
| 7 | ||||||||||||||||
| 8 | ||||||||||||||||
| 9 | VFMADD132PH EVEX | VFMADD132SH EVEX | VFMSUB132PH EVEX | VFMSUB132SH EVEX | VFMADD132PH EVEX | VFMADD132SH EVEX | VFMSUB132PH EVEX | VFMSUB132SH EVEX | ||||||||
| A | VFMADD132PH EVEX | VFMADD132SH EVEX | VFMSUB132PH EVEX | VFMSUB132SH EVEX | VFMADD132PH EVEX | VFMADD132SH EVEX | VFMSUB132PH EVEX | VFMSUB132SH EVEX | ||||||||
| B | VFMADD132PH EVEX | VFMADD132SH EVEX | VFMSUB132PH EVEX | VFMSUB132SH EVEX | VFMADD132PH EVEX | VFMADD132SH EVEX | VFMSUB132PH EVEX | VFMSUB132SH EVEX | ||||||||
| C | ||||||||||||||||
| D | VFCMULCPH EVEX | VFCMULCSH EVEX | ||||||||||||||
| E | ||||||||||||||||
| F |