Intel® 64 and IA-32 Instruction Set Reference

This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Please report issues here in case you run into any.

A frame-based layout version is also available here.

AAAASCII Adjust After Addition
AADASCII Adjust AX Before Division
AAMASCII Adjust AX After Multiply
AASASCII Adjust AL After Subtraction
ADCAdd with Carry
ADCXUnsigned Integer Addition of Two Operands with Carry Flag
ADDAdd
ADDPDAdd Packed Double-Precision Floating-Point Values
ADDPSAdd Packed Single-Precision Floating-Point Values
ADDSDAdd Scalar Double-Precision Floating-Point Values
ADDSSAdd Scalar Single-Precision Floating-Point Values
ADDSUBPDPacked Double-FP Add/Subtract
ADDSUBPSPacked Single-FP Add/Subtract
ADOXUnsigned Integer Addition of Two Operands with Overflow Flag
AESDECPerform One Round of an AES Decryption Flow
AESDEC128KLPerform Ten Rounds of AES Decryption Flow with Key Locker Using 128-Bit Key
AESDEC256KLPerform 14 Rounds of AES Decryption Flow with Key Locker Using 256-Bit Key
AESDECLASTPerform Last Round of an AES Decryption Flow
AESDECWIDE128KLPerform Ten Rounds of AES Decryption Flow with Key Locker on 8 Blocks Using 128-Bit Key
AESDECWIDE256KLPerform 14 Rounds of AES Decryption Flow with Key Locker on 8 Blocks Using 256-Bit Key
AESENCPerform One Round of an AES Encryption Flow
AESENC128KLPerform Ten Rounds of AES Encryption Flow with Key Locker Using 128-Bit Key
AESENC256KLPerform 14 Rounds of AES Encryption Flow with Key Locker Using 256-Bit Key
AESENCLASTPerform Last Round of an AES Encryption Flow
AESENCWIDE128KLPerform Ten Rounds of AES Encryption Flow with Key Locker on 8 Blocks Using 128-Bit Key
AESENCWIDE256KLPerform 14 Rounds of AES Encryption Flow with Key Locker on 8 Blocks Using 256-Bit Key
AESIMCPerform the AES InvMixColumn Transformation
AESKEYGENASSISTAES Round Key Generation Assist
ANDLogical AND
ANDNLogical AND NOT
ANDNPDBitwise Logical AND NOT of Packed Double Precision Floating-Point Values
ANDNPSBitwise Logical AND NOT of Packed Single Precision Floating-Point Values
ANDPDBitwise Logical AND of Packed Double Precision Floating-Point Values
ANDPSBitwise Logical AND of Packed Single Precision Floating-Point Values
ARPLAdjust RPL Field of Segment Selector
BEXTRBit Field Extract
BLENDPDBlend Packed Double Precision Floating-Point Values
BLENDPSBlend Packed Single Precision Floating-Point Values
BLENDVPDVariable Blend Packed Double Precision Floating-Point Values
BLENDVPSVariable Blend Packed Single Precision Floating-Point Values
BLSIExtract Lowest Set Isolated Bit
BLSMSKGet Mask Up to Lowest Set Bit
BLSRReset Lowest Set Bit
BNDCLCheck Lower Bound
BNDCU/BNDCNCheck Upper Bound
BNDLDXLoad Extended Bounds Using Address Translation
BNDMKMake Bounds
BNDMOVMove Bounds
BNDSTXStore Extended Bounds Using Address Translation
BOUNDCheck Array Index Against Bounds
BSFBit Scan Forward
BSRBit Scan Reverse
BSWAPByte Swap
BTBit Test
BTCBit Test and Complement
BTRBit Test and Reset
BTSBit Test and Set
BZHIZero High Bits Starting with Specified Bit Position
CALLCall Procedure
CBW/CWDE/CDQEConvert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword
CLACClear AC Flag in EFLAGS Register
CLCClear Carry Flag
CLDClear Direction Flag
CLDEMOTECache Line Demote
CLFLUSHFlush Cache Line
CLFLUSHOPTFlush Cache Line Optimized
CLIClear Interrupt Flag
CLRSSBSYClear Busy Flag in a Supervisor Shadow Stack Token
CLTSClear Task-Switched Flag in CR0
CLWBCache Line Write Back
CMCComplement Carry Flag
CMOVccConditional Move
CMPCompare Two Operands
CMPPDCompare Packed Double-Precision Floating-Point Values
CMPPSCompare Packed Single-Precision Floating-Point Values
CMPS/CMPSB/CMPSW/CMPSD/CMPSQCompare String Operands
CMPSDCompare Scalar Double-Precision Floating-Point Value
CMPSSCompare Scalar Single-Precision Floating-Point Value
CMPXCHGCompare and Exchange
CMPXCHG8B/CMPXCHG16BCompare and Exchange Bytes
COMISDCompare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
COMISSCompare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS
CPUIDCPU Identification
CRC32Accumulate CRC32 Value
CVTDQ2PDConvert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
CVTDQ2PSConvert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values
CVTPD2DQConvert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
CVTPD2PIConvert Packed Double-Precision FP Values to Packed Dword Integers
CVTPD2PSConvert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values
CVTPI2PDConvert Packed Dword Integers to Packed Double-Precision FP Values
CVTPI2PSConvert Packed Dword Integers to Packed Single-Precision FP Values
CVTPS2DQConvert Packed Single-Precision Floating-Point Values to Packed Signed Doubleword Integer Values
CVTPS2PDConvert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values
CVTPS2PIConvert Packed Single-Precision FP Values to Packed Dword Integers
CVTSD2SIConvert Scalar Double-Precision Floating-Point Value to Doubleword Integer
CVTSD2SSConvert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value
CVTSI2SDConvert Doubleword Integer to Scalar Double-Precision Floating-Point Value
CVTSI2SSConvert Doubleword Integer to Scalar Single-Precision Floating-Point Value
CVTSS2SDConvert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value
CVTSS2SIConvert Scalar Single-Precision Floating-Point Value to Doubleword Integer
CVTTPD2DQConvert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
CVTTPD2PIConvert with Truncation Packed Double-Precision FP Values to Packed Dword Integers
CVTTPS2DQConvert with Truncation Packed Single-Precision Floating-Point Values to Packed Signed Doubleword Integer Values
CVTTPS2PIConvert with Truncation Packed Single-Precision FP Values to Packed Dword Integers
CVTTSD2SIConvert with Truncation Scalar Double-Precision Floating-Point Value to Signed Integer
CVTTSS2SIConvert with Truncation Scalar Single-Precision Floating-Point Value to Integer
CWD/CDQ/CQOConvert Word to Doubleword/Convert Doubleword to Quadword
DAADecimal Adjust AL after Addition
DASDecimal Adjust AL after Subtraction
DECDecrement by 1
DIVUnsigned Divide
DIVPDDivide Packed Double-Precision Floating-Point Values
DIVPSDivide Packed Single-Precision Floating-Point Values
DIVSDDivide Scalar Double-Precision Floating-Point Value
DIVSSDivide Scalar Single-Precision Floating-Point Values
DPPDDot Product of Packed Double Precision Floating-Point Values
DPPSDot Product of Packed Single Precision Floating-Point Values
EMMSEmpty MMX Technology State
ENCODEKEY128Encode 128-Bit Key with Key Locker
ENCODEKEY256Encode 256-Bit Key with Key Locker
ENDBR32Terminate an Indirect Branch in 32-bit and Compatibility Mode
ENDBR64Terminate an Indirect Branch in 64-bit Mode
ENTERMake Stack Frame for Procedure Parameters
EXTRACTPSExtract Packed Floating-Point Values
F2XM1Compute 2x1
FABSAbsolute Value
FADD/FADDP/FIADDAdd
FBLDLoad Binary Coded Decimal
FBSTPStore BCD Integer and Pop
FCHSChange Sign
FCLEX/FNCLEXClear Exceptions
FCMOVccFloating-Point Conditional Move
FCOM/FCOMP/FCOMPPCompare Floating Point Values
FCOMI/FCOMIP/ FUCOMI/FUCOMIPCompare Floating Point Values and Set EFLAGS
FCOSCosine
FDECSTPDecrement Stack-Top Pointer
FDIV/FDIVP/FIDIVDivide
FDIVR/FDIVRP/FIDIVRReverse Divide
FFREEFree Floating-Point Register
FICOM/FICOMPCompare Integer
FILDLoad Integer
FINCSTPIncrement Stack-Top Pointer
FINIT/FNINITInitialize Floating-Point Unit
FIST/FISTPStore Integer
FISTTPStore Integer with Truncation
FLDLoad Floating Point Value
FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZLoad Constant
FLDCWLoad x87 FPU Control Word
FLDENVLoad x87 FPU Environment
FMUL/FMULP/FIMULMultiply
FNOPNo Operation
FPATANPartial Arctangent
FPREMPartial Remainder
FPREM1Partial Remainder
FPTANPartial Tangent
FRNDINTRound to Integer
FRSTORRestore x87 FPU State
FSAVE/FNSAVEStore x87 FPU State
FSCALEScale
FSINSine
FSINCOSSine and Cosine
FSQRTSquare Root
FST/FSTPStore Floating Point Value
FSTCW/FNSTCWStore x87 FPU Control Word
FSTENV/FNSTENVStore x87 FPU Environment
FSTSW/FNSTSWStore x87 FPU Status Word
FSUB/FSUBP/FISUBSubtract
FSUBR/FSUBRP/FISUBRReverse Subtract
FTSTTEST
FUCOM/FUCOMP/FUCOMPPUnordered Compare Floating Point Values
FXAMExamine Floating-Point
FXCHExchange Register Contents
FXRSTORRestore x87 FPU, MMX, XMM, and MXCSR State
FXSAVESave x87 FPU, MMX Technology, and SSE State
FXTRACTExtract Exponent and Significand
FYL2XCompute y * log2x
FYL2XP1Compute y * log2(x +1)
GETSEC[CAPABILITIES]Report the SMX Capabilities
GETSEC[ENTERACCS]Execute Authenticated Chipset Code
GETSEC[EXITAC]Exit Authenticated Code Execution Mode
GETSEC[PARAMETERS]Report the SMX Parameters
GETSEC[SENTER]Enter a Measured Environment
GETSEC[SEXIT]Exit Measured Environment
GETSEC[SMCTRL]SMX Mode Control
GETSEC[WAKEUP]Wake up sleeping processors in measured environment
GF2P8AFFINEINVQBGalois Field Affine Transformation Inverse
GF2P8AFFINEQBGalois Field Affine Transformation
GF2P8MULBGalois Field Multiply Bytes
HADDPDPacked Double-FP Horizontal Add
HADDPSPacked Single-FP Horizontal Add
HLTHalt
HRESETHistory Reset
HSUBPDPacked Double-FP Horizontal Subtract
HSUBPSPacked Single-FP Horizontal Subtract
IDIVSigned Divide
IMULSigned Multiply
INInput from Port
INCIncrement by 1
INCSSPD/INCSSPQIncrement Shadow Stack Pointer
INS/INSB/INSW/INSDInput from Port to String
INSERTPSInsert Scalar Single-Precision Floating-Point Value
INT n/INTO/INT3/INT1Call to Interrupt Procedure
INVDInvalidate Internal Caches
INVLPGInvalidate TLB Entries
INVPCIDInvalidate Process-Context Identifier
IRET/IRETD/IRETQInterrupt Return
JccJump if Condition Is Met
JMPJump
KADDW/KADDB/KADDQ/KADDDADD Two Masks
KANDNW/KANDNB/KANDNQ/KANDNDBitwise Logical AND NOT Masks
KANDW/KANDB/KANDQ/KANDDBitwise Logical AND Masks
KMOVW/KMOVB/KMOVQ/KMOVDMove from and to Mask Registers
KNOTW/KNOTB/KNOTQ/KNOTDNOT Mask Register
KORTESTW/KORTESTB/KORTESTQ/KORTESTDOR Masks And Set Flags
KORW/KORB/KORQ/KORDBitwise Logical OR Masks
KSHIFTLW/KSHIFTLB/KSHIFTLQ/KSHIFTLDShift Left Mask Registers
KSHIFTRW/KSHIFTRB/KSHIFTRQ/KSHIFTRDShift Right Mask Registers
KTESTW/KTESTB/KTESTQ/KTESTDPacked Bit Test Masks and Set Flags
KUNPCKBW/KUNPCKWD/KUNPCKDQUnpack for Mask Registers
KXNORW/KXNORB/KXNORQ/KXNORDBitwise Logical XNOR Masks
KXORW/KXORB/KXORQ/KXORDBitwise Logical XOR Masks
LAHFLoad Status Flags into AH Register
LARLoad Access Rights Byte
LDDQULoad Unaligned Integer 128 Bits
LDMXCSRLoad MXCSR Register
LDS/LES/LFS/LGS/LSSLoad Far Pointer
LEALoad Effective Address
LEAVEHigh Level Procedure Exit
LFENCELoad Fence
LGDT/LIDTLoad Global/Interrupt Descriptor Table Register
LLDTLoad Local Descriptor Table Register
LMSWLoad Machine Status Word
LOADIWKEYLoad Internal Wrapping Key with Key Locker
LOCKAssert LOCK# Signal Prefix
LODS/LODSB/LODSW/LODSD/LODSQLoad String
LOOP/LOOPccLoop According to ECX Counter
LSLLoad Segment Limit
LTRLoad Task Register
LZCNTCount the Number of Leading Zero Bits
MASKMOVDQUStore Selected Bytes of Double Quadword
MASKMOVQStore Selected Bytes of Quadword
MAXPDMaximum of Packed Double-Precision Floating-Point Values
MAXPSMaximum of Packed Single-Precision Floating-Point Values
MAXSDReturn Maximum Scalar Double-Precision Floating-Point Value
MAXSSReturn Maximum Scalar Single-Precision Floating-Point Value
MFENCEMemory Fence
MINPDMinimum of Packed Double-Precision Floating-Point Values
MINPSMinimum of Packed Single-Precision Floating-Point Values
MINSDReturn Minimum Scalar Double-Precision Floating-Point Value
MINSSReturn Minimum Scalar Single-Precision Floating-Point Value
MONITORSet Up Monitor Address
MOVMove
MOVAPDMove Aligned Packed Double-Precision Floating-Point Values
MOVAPSMove Aligned Packed Single-Precision Floating-Point Values
MOVBEMove Data After Swapping Bytes
MOVD/MOVQMove Doubleword/Move Quadword
MOVDDUPReplicate Double FP Values
MOVDIR64BMove 64 Bytes as Direct Store
MOVDIRIMove Doubleword as Direct Store
MOVDQ2QMove Quadword from XMM to MMX Technology Register
MOVDQA,VMOVDQA32/64Move Aligned Packed Integer Values
MOVDQU,VMOVDQU8/16/32/64Move Unaligned Packed Integer Values
MOVHLPSMove Packed Single-Precision Floating-Point Values High to Low
MOVHPDMove High Packed Double-Precision Floating-Point Value
MOVHPSMove High Packed Single-Precision Floating-Point Values
MOVLHPSMove Packed Single-Precision Floating-Point Values Low to High
MOVLPDMove Low Packed Double-Precision Floating-Point Value
MOVLPSMove Low Packed Single-Precision Floating-Point Values
MOVMSKPDExtract Packed Double-Precision Floating-Point Sign Mask
MOVMSKPSExtract Packed Single-Precision Floating-Point Sign Mask
MOVNTDQStore Packed Integers Using Non-Temporal Hint
MOVNTDQALoad Double Quadword Non-Temporal Aligned Hint
MOVNTIStore Doubleword Using Non-Temporal Hint
MOVNTPDStore Packed Double-Precision Floating-Point Values Using Non-Temporal Hint
MOVNTPSStore Packed Single-Precision Floating-Point Values Using Non-Temporal Hint
MOVNTQStore of Quadword Using Non-Temporal Hint
MOVQMove Quadword
MOVQ2DQMove Quadword from MMX Technology to XMM Register
MOVS/MOVSB/MOVSW/MOVSD/MOVSQMove Data from StringtoString
MOVSDMove or Merge Scalar Double-Precision Floating-Point Value
MOVSHDUPReplicate Single FP Values
MOVSLDUPReplicate Single FP Values
MOVSSMove or Merge Scalar Single-Precision Floating-Point Value
MOVSX/MOVSXDMove with Sign-Extension
MOVUPDMove Unaligned Packed Double-Precision Floating-Point Values
MOVUPSMove Unaligned Packed Single-Precision Floating-Point Values
MOVZXMove with Zero-Extend
MPSADBWCompute Multiple Packed Sums of Absolute Difference
MULUnsigned Multiply
MULPDMultiply Packed Double-Precision Floating-Point Values
MULPSMultiply Packed Single-Precision Floating-Point Values
MULSDMultiply Scalar Double-Precision Floating-Point Value
MULSSMultiply Scalar Single-Precision Floating-Point Values
MULXUnsigned Multiply Without Affecting Flags
MWAITMonitor Wait
NEGTwo's Complement Negation
NOPNo Operation
NOTOne's Complement Negation
ORLogical Inclusive OR
ORPDBitwise Logical OR of Packed Double Precision Floating-Point Values
ORPSBitwise Logical OR of Packed Single Precision Floating-Point Values
OUTOutput to Port
OUTS/OUTSB/OUTSW/OUTSDOutput String to Port
PABSB/PABSW/PABSD/PABSQPacked Absolute Value
PACKSSWB/PACKSSDWPack with Signed Saturation
PACKUSDWPack with Unsigned Saturation
PACKUSWBPack with Unsigned Saturation
PADDB/PADDW/PADDD/PADDQAdd Packed Integers
PADDSB/PADDSWAdd Packed Signed Integers with Signed Saturation
PADDUSB/PADDUSWAdd Packed Unsigned Integers with Unsigned Saturation
PALIGNRPacked Align Right
PANDLogical AND
PANDNLogical AND NOT
PAUSESpin Loop Hint
PAVGB/PAVGWAverage Packed Integers
PBLENDVBVariable Blend Packed Bytes
PBLENDWBlend Packed Words
PCLMULQDQCarry-Less Multiplication Quadword
PCMPEQB/PCMPEQW/PCMPEQDCompare Packed Data for Equal
PCMPEQQCompare Packed Qword Data for Equal
PCMPESTRIPacked Compare Explicit Length Strings, Return Index
PCMPESTRMPacked Compare Explicit Length Strings, Return Mask
PCMPGTB/PCMPGTW/PCMPGTDCompare Packed Signed Integers for Greater Than
PCMPGTQCompare Packed Data for Greater Than
PCMPISTRIPacked Compare Implicit Length Strings, Return Index
PCMPISTRMPacked Compare Implicit Length Strings, Return Mask
PCONFIGPlatform Configuration
PDEPParallel Bits Deposit
PEXTParallel Bits Extract
PEXTRB/PEXTRD/PEXTRQExtract Byte/Dword/Qword
PEXTRWExtract Word
PHADDSWPacked Horizontal Add and Saturate
PHADDW/PHADDDPacked Horizontal Add
PHMINPOSUWPacked Horizontal Word Minimum
PHSUBSWPacked Horizontal Subtract and Saturate
PHSUBW/PHSUBDPacked Horizontal Subtract
PINSRB/PINSRD/PINSRQInsert Byte/Dword/Qword
PINSRWInsert Word
PMADDUBSWMultiply and Add Packed Signed and Unsigned Bytes
PMADDWDMultiply and Add Packed Integers
PMAXSB/PMAXSW/PMAXSD/PMAXSQMaximum of Packed Signed Integers
PMAXUB/PMAXUWMaximum of Packed Unsigned Integers
PMAXUD/PMAXUQMaximum of Packed Unsigned Integers
PMINSB/PMINSWMinimum of Packed Signed Integers
PMINSD/PMINSQMinimum of Packed Signed Integers
PMINUB/PMINUWMinimum of Packed Unsigned Integers
PMINUD/PMINUQMinimum of Packed Unsigned Integers
PMOVMSKBMove Byte Mask
PMOVSXPacked Move with Sign Extend
PMOVZXPacked Move with Zero Extend
PMULDQMultiply Packed Doubleword Integers
PMULHRSWPacked Multiply High with Round and Scale
PMULHUWMultiply Packed Unsigned Integers and Store High Result
PMULHWMultiply Packed Signed Integers and Store High Result
PMULLD/PMULLQMultiply Packed Integers and Store Low Result
PMULLWMultiply Packed Signed Integers and Store Low Result
PMULUDQMultiply Packed Unsigned Doubleword Integers
POPPop a Value from the Stack
POPA/POPADPop All General-Purpose Registers
POPCNTReturn the Count of Number of Bits Set to 1
POPF/POPFD/POPFQPop Stack into EFLAGS Register
PORBitwise Logical OR
PREFETCHhPrefetch Data Into Caches
PREFETCHWPrefetch Data into Caches in Anticipation of a Write
PREFETCHWT1Prefetch Vector Data Into Caches with Intent to Write and T1 Hint
PSADBWCompute Sum of Absolute Differences
PSHUFBPacked Shuffle Bytes
PSHUFDShuffle Packed Doublewords
PSHUFHWShuffle Packed High Words
PSHUFLWShuffle Packed Low Words
PSHUFWShuffle Packed Words
PSIGNB/PSIGNW/PSIGNDPacked SIGN
PSLLDQShift Double Quadword Left Logical
PSLLW/PSLLD/PSLLQShift Packed Data Left Logical
PSRAW/PSRAD/PSRAQShift Packed Data Right Arithmetic
PSRLDQShift Double Quadword Right Logical
PSRLW/PSRLD/PSRLQShift Packed Data Right Logical
PSUBB/PSUBW/PSUBDSubtract Packed Integers
PSUBQSubtract Packed Quadword Integers
PSUBSB/PSUBSWSubtract Packed Signed Integers with Signed Saturation
PSUBUSB/PSUBUSWSubtract Packed Unsigned Integers with Unsigned Saturation
PTESTLogical Compare
PTWRITEWrite Data to a Processor Trace Packet
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQUnpack High Data
PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQUnpack Low Data
PUSHPush Word, Doubleword or Quadword Onto the Stack
PUSHA/PUSHADPush All General-Purpose Registers
PUSHF/PUSHFD/PUSHFQPush EFLAGS Register onto the Stack
PXORLogical Exclusive OR
RCL/RCR/ROL/RORRotate
RCPPSCompute Reciprocals of Packed Single-Precision Floating-Point Values
RCPSSCompute Reciprocal of Scalar Single-Precision Floating-Point Values
RDFSBASE/RDGSBASERead FS/GS Segment Base
RDMSRRead from Model Specific Register
RDPIDRead Processor ID
RDPKRURead Protection Key Rights for User Pages
RDPMCRead Performance-Monitoring Counters
RDRANDRead Random Number
RDSEEDRead Random SEED
RDSSPD/RDSSPQRead Shadow Stack Pointer
RDTSCRead Time-Stamp Counter
RDTSCPRead Time-Stamp Counter and Processor ID
REP/REPE/REPZ/REPNE/REPNZRepeat String Operation Prefix
RETReturn from Procedure
RORXRotate Right Logical Without Affecting Flags
ROUNDPDRound Packed Double Precision Floating-Point Values
ROUNDPSRound Packed Single Precision Floating-Point Values
ROUNDSDRound Scalar Double Precision Floating-Point Values
ROUNDSSRound Scalar Single Precision Floating-Point Values
RSMResume from System Management Mode
RSQRTPSCompute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values
RSQRTSSCompute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value
RSTORSSPRestore Saved Shadow Stack Pointer
SAHFStore AH into Flags
SAL/SAR/SHL/SHRShift
SARX/SHLX/SHRXShift Without Affecting Flags
SAVEPREVSSPSave Previous Shadow Stack Pointer
SBBInteger Subtraction with Borrow
SCAS/SCASB/SCASW/SCASDScan String
SERIALIZESerialize Instruction Execution
SETccSet Byte on Condition
SETSSBSYMark Shadow Stack Busy
SFENCEStore Fence
SGDTStore Global Descriptor Table Register
SHA1MSG1Perform an Intermediate Calculation for the Next Four SHA1 Message Dwords
SHA1MSG2Perform a Final Calculation for the Next Four SHA1 Message Dwords
SHA1NEXTECalculate SHA1 State Variable E after Four Rounds
SHA1RNDS4Perform Four Rounds of SHA1 Operation
SHA256MSG1Perform an Intermediate Calculation for the Next Four SHA256 Message Dwords
SHA256MSG2Perform a Final Calculation for the Next Four SHA256 Message Dwords
SHA256RNDS2Perform Two Rounds of SHA256 Operation
SHLDDouble Precision Shift Left
SHRDDouble Precision Shift Right
SHUFPDPacked Interleave Shuffle of Pairs of Double-Precision Floating-Point Values
SHUFPSPacked Interleave Shuffle of Quadruplets of Single-Precision Floating-Point Values
SIDTStore Interrupt Descriptor Table Register
SLDTStore Local Descriptor Table Register
SMSWStore Machine Status Word
SQRTPDSquare Root of Double-Precision Floating-Point Values
SQRTPSSquare Root of Single-Precision Floating-Point Values
SQRTSDCompute Square Root of Scalar Double-Precision Floating-Point Value
SQRTSSCompute Square Root of Scalar Single-Precision Value
STACSet AC Flag in EFLAGS Register
STCSet Carry Flag
STDSet Direction Flag
STISet Interrupt Flag
STMXCSRStore MXCSR Register State
STOS/STOSB/STOSW/STOSD/STOSQStore String
STRStore Task Register
SUBSubtract
SUBPDSubtract Packed Double-Precision Floating-Point Values
SUBPSSubtract Packed Single-Precision Floating-Point Values
SUBSDSubtract Scalar Double-Precision Floating-Point Value
SUBSSSubtract Scalar Single-Precision Floating-Point Value
SWAPGSSwap GS Base Register
SYSCALLFast System Call
SYSENTERFast System Call
SYSEXITFast Return from Fast System Call
SYSRETReturn From Fast System Call
TESTLogical Compare
TPAUSETimed PAUSE
TZCNTCount the Number of Trailing Zero Bits
UCOMISDUnordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS
UCOMISSUnordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS
UDUndefined Instruction
UMONITORUser Level Set Up Monitor Address
UMWAITUser Level Monitor Wait
UNPCKHPDUnpack and Interleave High Packed Double-Precision Floating-Point Values
UNPCKHPSUnpack and Interleave High Packed Single-Precision Floating-Point Values
UNPCKLPDUnpack and Interleave Low Packed Double-Precision Floating-Point Values
UNPCKLPSUnpack and Interleave Low Packed Single-Precision Floating-Point Values
V4FMADDPS/V4FNMADDPSPacked Single-Precision Floating-Point Fused Multiply-Add (4-iterations)
V4FMADDSS/V4FNMADDSSScalar Single-Precision Floating-Point Fused Multiply-Add (4-iterations)
VALIGND/VALIGNQAlign Doubleword/Quadword Vectors
VBLENDMPD/VBLENDMPSBlend Float64/Float32 Vectors Using an OpMask Control
VBROADCASTLoad with Broadcast Floating-Point Data
VCOMPRESSPDStore Sparse Packed Double-Precision Floating-Point Values into Dense Memory
VCOMPRESSPSStore Sparse Packed Single-Precision Floating-Point Values into Dense Memory
VCVTNE2PS2BF16Convert Two Packed Single Data to One Packed BF16 Data
VCVTNEPS2BF16Convert Packed Single Data to Packed BF16 Data
VCVTPD2QQConvert Packed Double-Precision Floating-Point Values to Packed Quadword Integers
VCVTPD2UDQConvert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers
VCVTPD2UQQConvert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers
VCVTPH2PSConvert 16-bit FP values to Single-Precision FP values
VCVTPS2PHConvert Single-Precision FP value to 16-bit FP value
VCVTPS2QQConvert Packed Single Precision Floating-Point Values to Packed Signed Quadword Integer Values
VCVTPS2UDQConvert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values
VCVTPS2UQQConvert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values
VCVTQQ2PDConvert Packed Quadword Integers to Packed Double-Precision Floating-Point Values
VCVTQQ2PSConvert Packed Quadword Integers to Packed Single-Precision Floating-Point Values
VCVTSD2USIConvert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer
VCVTSS2USIConvert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer
VCVTTPD2QQConvert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers
VCVTTPD2UDQConvert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers
VCVTTPD2UQQConvert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers
VCVTTPS2QQConvert with Truncation Packed Single Precision Floating-Point Values to Packed Signed Quadword Integer Values
VCVTTPS2UDQConvert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Val-
VCVTTPS2UQQConvert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values
VCVTTSD2USIConvert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer
VCVTTSS2USIConvert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer
VCVTUDQ2PDConvert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values
VCVTUDQ2PSConvert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values
VCVTUQQ2PDConvert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values
VCVTUQQ2PSConvert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values
VCVTUSI2SDConvert Unsigned Integer to Scalar Double-Precision Floating-Point Value
VCVTUSI2SSConvert Unsigned Integer to Scalar Single-Precision Floating-Point Value
VDBPSADBWDouble Block Packed Sum-Absolute-Differences (SAD) on Unsigned Bytes
VDPBF16PSDot Product of BF16 Pairs Accumulated into Packed Single Precision
VERR/VERWVerify a Segment for Reading or Writing
VEXP2PDApproximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Er-
VEXP2PSApproximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Er-
VEXPANDPDLoad Sparse Packed Double-Precision Floating-Point Values from Dense Memory
VEXPANDPSLoad Sparse Packed Single-Precision Floating-Point Values from Dense Memory
VEXTRACTF128/VEXTRACTF32x4/VEXTRACTF64x2/VEXTRACTF32x8/VEXTRACTF64x4Extract Packed Floating-Point Values
VEXTRACTI128/VEXTRACTI32x4/VEXTRACTI64x2/VEXTRACTI32x8/VEXTRACTI64x4Extract packed Integer Values
VFIXUPIMMPDFix Up Special Packed Float64 Values
VFIXUPIMMPSFix Up Special Packed Float32 Values
VFIXUPIMMSDFix Up Special Scalar Float64 Value
VFIXUPIMMSSFix Up Special Scalar Float32 Value
VFMADD132PD/VFMADD213PD/VFMADD231PDFused Multiply-Add of Packed Double-Precision Floating-Point Values
VFMADD132PS/VFMADD213PS/VFMADD231PSFused Multiply-Add of Packed Single-Precision Floating-Point Values
VFMADD132SD/VFMADD213SD/VFMADD231SDFused Multiply-Add of Scalar Double-Precision Floating-Point Values
VFMADD132SS/VFMADD213SS/VFMADD231SSFused Multiply-Add of Scalar Single-Precision Floating-Point Values
VFMADDSUB132PD/VFMADDSUB213PD/VFMADDSUB231PDFused Multiply-Alternating Add/Subtract of Packed Double-Precision
VFMADDSUB132PS/VFMADDSUB213PS/VFMADDSUB231PSFused Multiply-Alternating Add/Subtract of Packed Single-Precision
VFMSUB132PD/VFMSUB213PD/VFMSUB231PDFused Multiply-Subtract of Packed Double-Precision Floating-Point Values
VFMSUB132PS/VFMSUB213PS/VFMSUB231PSFused Multiply-Subtract of Packed Single-Precision Floating-Point Values
VFMSUB132SD/VFMSUB213SD/VFMSUB231SDFused Multiply-Subtract of Scalar Double-Precision Floating-Point Values
VFMSUB132SS/VFMSUB213SS/VFMSUB231SSFused Multiply-Subtract of Scalar Single-Precision Floating-Point Values
VFMSUBADD132PD/VFMSUBADD213PD/VFMSUBADD231PDFused Multiply-Alternating Subtract/Add of Packed Double-Precision
VFMSUBADD132PS/VFMSUBADD213PS/VFMSUBADD231PSFused Multiply-Alternating Subtract/Add of Packed Single-Precision
VFNMADD132PD/VFNMADD213PD/VFNMADD231PDFused Negative Multiply-Add of Packed Double-Precision Floating-Point Values
VFNMADD132PS/VFNMADD213PS/VFNMADD231PSFused Negative Multiply-Add of Packed Single-Precision Floating-Point Values
VFNMADD132SD/VFNMADD213SD/VFNMADD231SDFused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values
VFNMADD132SS/VFNMADD213SS/VFNMADD231SSFused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values
VFNMSUB132PD/VFNMSUB213PD/VFNMSUB231PDFused Negative Multiply-Subtract of Packed Double-Precision Floating-Point
VFNMSUB132PS/VFNMSUB213PS/VFNMSUB231PSFused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Val-
VFNMSUB132SD/VFNMSUB213SD/VFNMSUB231SDFused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Val-
VFNMSUB132SS/VFNMSUB213SS/VFNMSUB231SSFused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Val-
VFPCLASSPDTests Types Of a Packed Float64 Values
VFPCLASSPSTests Types Of a Packed Float32 Values
VFPCLASSSDTests Types Of a Scalar Float64 Values
VFPCLASSSSTests Types Of a Scalar Float32 Values
VGATHERDPD/VGATHERQPDGather Packed DP FP Values Using Signed Dword/Qword Indices
VGATHERDPS/VGATHERDPDGather Packed Single, Packed Double with Signed Dword
VGATHERDPS/VGATHERQPSGather Packed SP FP values Using Signed Dword/Qword Indices
VGATHERPF0DPS/VGATHERPF0QPS/VGATHERPF0DPD/VGATHERPF0QPDSparse Prefetch Packed SP/DP Data Values with Signed
VGATHERPF1DPS/VGATHERPF1QPS/VGATHERPF1DPD/VGATHERPF1QPDSparse Prefetch Packed SP/DP Data Values with Signed
VGATHERQPS/VGATHERQPDGather Packed Single, Packed Double with Signed Qword Indices
VGETEXPPDConvert Exponents of Packed DP FP Values to DP FP Values
VGETEXPPSConvert Exponents of Packed SP FP Values to SP FP Values
VGETEXPSDConvert Exponents of Scalar DP FP Values to DP FP Value
VGETEXPSSConvert Exponents of Scalar SP FP Values to SP FP Value
VGETMANTPDExtract Float64 Vector of Normalized Mantissas from Float64 Vector
VGETMANTPSExtract Float32 Vector of Normalized Mantissas from Float32 Vector
VGETMANTSDExtract Float64 of Normalized Mantissas from Float64 Scalar
VGETMANTSSExtract Float32 Vector of Normalized Mantissa from Float32 Vector
VINSERTF128/VINSERTF32x4/VINSERTF64x2/VINSERTF32x8/VINSERTF64x4Insert Packed Floating-Point Values
VINSERTI128/VINSERTI32x4/VINSERTI64x2/VINSERTI32x8/VINSERTI64x4Insert Packed Integer Values
VMASKMOVConditional SIMD Packed Loads and Stores
VP2INTERSECTD/VP2INTERSECTQCompute Intersection Between DWORDS/QUADWORDS to a Pair of Mask Registers
VP4DPWSSDDot Product of Signed Words with Dword Accumulation (4-iterations)
VP4DPWSSDSDot Product of Signed Words with Dword Accumulation and Saturation (4-iterations)
VPBLENDDBlend Packed Dwords
VPBLENDMB/VPBLENDMWBlend Byte/Word Vectors Using an Opmask Control
VPBLENDMD/VPBLENDMQBlend Int32/Int64 Vectors Using an OpMask Control
VPBROADCASTLoad Integer and Broadcast
VPBROADCASTB/W/D/QLoad with Broadcast Integer Data from General Purpose Register
VPBROADCASTMBroadcast Mask to Vector Register
VPCMPB/VPCMPUBCompare Packed Byte Values Into Mask
VPCMPD/VPCMPUDCompare Packed Integer Values into Mask
VPCMPQ/VPCMPUQCompare Packed Integer Values into Mask
VPCMPW/VPCMPUWCompare Packed Word Values Into Mask
VPCOMPRESSB/VCOMPRESSWStore Sparse Packed Byte/Word Integer Values into Dense Memory/Register
VPCOMPRESSDStore Sparse Packed Doubleword Integer Values into Dense Memory/Register
VPCOMPRESSQStore Sparse Packed Quadword Integer Values into Dense Memory/Register
VPCONFLICTD/QDetect Conflicts Within a Vector of Packed Dword/Qword Values into Dense Memory/ Register
VPDPBUSDMultiply and Add Unsigned and Signed Bytes
VPDPBUSDSMultiply and Add Unsigned and Signed Bytes with Saturation
VPDPWSSDMultiply and Add Signed Word Integers
VPDPWSSDSMultiply and Add Signed Word Integers with Saturation
VPERM2F128Permute Floating-Point Values
VPERM2I128Permute Integer Values
VPERMBPermute Packed Bytes Elements
VPERMD/VPERMWPermute Packed Doublewords/Words Elements
VPERMI2BFull Permute of Bytes from Two Tables Overwriting the Index
VPERMI2W/D/Q/PS/PDFull Permute From Two Tables Overwriting the Index
VPERMILPDPermute In-Lane of Pairs of Double-Precision Floating-Point Values
VPERMILPSPermute In-Lane of Quadruples of Single-Precision Floating-Point Values
VPERMPDPermute Double-Precision Floating-Point Elements
VPERMPSPermute Single-Precision Floating-Point Elements
VPERMQQwords Element Permutation
VPERMT2BFull Permute of Bytes from Two Tables Overwriting a Table
VPERMT2W/D/Q/PS/PDFull Permute from Two Tables Overwriting one Table
VPEXPANDB/VPEXPANDWExpand Byte/Word Values
VPEXPANDDLoad Sparse Packed Doubleword Integer Values from Dense Memory / Register
VPEXPANDQLoad Sparse Packed Quadword Integer Values from Dense Memory / Register
VPGATHERDD/VPGATHERDQGather Packed Dword, Packed Qword with Signed Dword Indices
VPGATHERDD/VPGATHERQDGather Packed Dword Values Using Signed Dword/Qword Indices
VPGATHERDQ/VPGATHERQQGather Packed Qword Values Using Signed Dword/Qword Indices
VPGATHERQD/VPGATHERQQGather Packed Dword, Packed Qword with Signed Qword Indices
VPLZCNTD/QCount the Number of Leading Zero Bits for Packed Dword, Packed Qword Values
VPMADD52HUQPacked Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to 64-bit Accumulators
VPMADD52LUQPacked Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Qword Accumulators
VPMASKMOVConditional SIMD Integer Packed Loads and Stores
VPMOVB2M/VPMOVW2M/VPMOVD2M/VPMOVQ2MConvert a Vector Register to a Mask
VPMOVDB/VPMOVSDB/VPMOVUSDBDown Convert DWord to Byte
VPMOVDW/VPMOVSDW/VPMOVUSDWDown Convert DWord to Word
VPMOVM2B/VPMOVM2W/VPMOVM2D/VPMOVM2QConvert a Mask Register to a Vector Register
VPMOVQB/VPMOVSQB/VPMOVUSQBDown Convert QWord to Byte
VPMOVQD/VPMOVSQD/VPMOVUSQDDown Convert QWord to DWord
VPMOVQW/VPMOVSQW/VPMOVUSQWDown Convert QWord to Word
VPMOVWB/VPMOVSWB/VPMOVUSWBDown Convert Word to Byte
VPMULTISHIFTQBSelect Packed Unaligned Bytes from Quadword Sources
VPOPCNTReturn the Count of Number of Bits Set to 1 in BYTE/WORD/DWORD/QWORD
VPROLD/VPROLVD/VPROLQ/VPROLVQBit Rotate Left
VPRORD/VPRORVD/VPRORQ/VPRORVQBit Rotate Right
VPSCATTERDD/VPSCATTERDQ/VPSCATTERQD/VPSCATTERQQScatter Packed Dword, Packed Qword with Signed Dword, Signed
VPSHLDConcatenate and Shift Packed Data Left Logical
VPSHLDVConcatenate and Variable Shift Packed Data Left Logical
VPSHRDConcatenate and Shift Packed Data Right Logical
VPSHRDVConcatenate and Variable Shift Packed Data Right Logical
VPSHUFBITQMBShuffle Bits from Quadword Elements Using Byte Indexes into Mask
VPSLLVW/VPSLLVD/VPSLLVQVariable Bit Shift Left Logical
VPSRAVW/VPSRAVD/VPSRAVQVariable Bit Shift Right Arithmetic
VPSRLVW/VPSRLVD/VPSRLVQVariable Bit Shift Right Logical
VPTERNLOGD/VPTERNLOGQBitwise Ternary Logic
VPTESTMB/VPTESTMW/VPTESTMD/VPTESTMQLogical AND and Set Mask
VPTESTNMB/W/D/QLogical NAND and Set
VRANGEPDRange Restriction Calculation For Packed Pairs of Float64 Values
VRANGEPSRange Restriction Calculation For Packed Pairs of Float32 Values
VRANGESDRange Restriction Calculation From a pair of Scalar Float64 Values
VRANGESSRange Restriction Calculation From a Pair of Scalar Float32 Values
VRCP14PDCompute Approximate Reciprocals of Packed Float64 Values
VRCP14PSCompute Approximate Reciprocals of Packed Float32 Values
VRCP14SDCompute Approximate Reciprocal of Scalar Float64 Value
VRCP14SSCompute Approximate Reciprocal of Scalar Float32 Value
VRCP28PDApproximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error
VRCP28PSApproximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error
VRCP28SDApproximation to the Reciprocal of Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error
VRCP28SSApproximation to the Reciprocal of Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error
VREDUCEPDPerform Reduction Transformation on Packed Float64 Values
VREDUCEPSPerform Reduction Transformation on Packed Float32 Values
VREDUCESDPerform a Reduction Transformation on a Scalar Float64 Value
VREDUCESSPerform a Reduction Transformation on a Scalar Float32 Value
VRNDSCALEPDRound Packed Float64 Values To Include A Given Number Of Fraction Bits
VRNDSCALEPSRound Packed Float32 Values To Include A Given Number Of Fraction Bits
VRNDSCALESDRound Scalar Float64 Value To Include A Given Number Of Fraction Bits
VRNDSCALESSRound Scalar Float32 Value To Include A Given Number Of Fraction Bits
VRSQRT14PDCompute Approximate Reciprocals of Square Roots of Packed Float64 Values
VRSQRT14PSCompute Approximate Reciprocals of Square Roots of Packed Float32 Values
VRSQRT14SDCompute Approximate Reciprocal of Square Root of Scalar Float64 Value
VRSQRT14SSCompute Approximate Reciprocal of Square Root of Scalar Float32 Value
VRSQRT28PDApproximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28
VRSQRT28PSApproximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28
VRSQRT28SDApproximation to the Reciprocal Square Root of Scalar Double-Precision Floating-Point Value with Less Than 2^-28
VRSQRT28SSApproximation to the Reciprocal Square Root of Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Rel-
VSCALEFPDScale Packed Float64 Values With Float64 Values
VSCALEFPSScale Packed Float32 Values With Float32 Values
VSCALEFSDScale Scalar Float64 Values With Float64 Values
VSCALEFSSScale Scalar Float32 Value With Float32 Value
VSCATTERDPS/VSCATTERDPD/VSCATTERQPS/VSCATTERQPDScatter Packed Single, Packed Double with Signed Dword and Qword
VSCATTERPF0DPS/VSCATTERPF0QPS/VSCATTERPF0DPD/VSCATTERPF0QPDSparse Prefetch Packed SP/DP Data Values with
VSCATTERPF1DPS/VSCATTERPF1QPS/VSCATTERPF1DPD/VSCATTERPF1QPDSparse Prefetch Packed SP/DP Data Values with
VSHUFF32x4/VSHUFF64x2/VSHUFI32x4/VSHUFI64x2Shuffle Packed Values at 128-bit Granularity
VTESTPD/VTESTPSPacked Bit Test
VZEROALLZero XMM, YMM and ZMM Registers
VZEROUPPERZero Upper Bits of YMM and ZMM Registers
WAIT/FWAITWait
WBINVDWrite Back and Invalidate Cache
WBNOINVDWrite Back and Do Not Invalidate Cache
WRFSBASE/WRGSBASEWrite FS/GS Segment Base
WRMSRWrite to Model Specific Register
WRPKRUWrite Data to User Page Key Register
WRSSD/WRSSQWrite to Shadow Stack
WRUSSD/WRUSSQWrite to User Shadow Stack
XABORTTransactional Abort
XACQUIRE/XRELEASEHardware Lock Elision Prefix Hints
XADDExchange and Add
XBEGINTransactional Begin
XCHGExchange Register/Memory with Register
XENDTransactional End
XGETBVGet Value of Extended Control Register
XLAT/XLATBTable Look-up Translation
XORLogical Exclusive OR
XORPDBitwise Logical XOR of Packed Double Precision Floating-Point Values
XORPSBitwise Logical XOR of Packed Single Precision Floating-Point Values
XRSTORRestore Processor Extended States
XRSTORSRestore Processor Extended States Supervisor
XSAVESave Processor Extended States
XSAVECSave Processor Extended States with Compaction
XSAVEOPTSave Processor Extended States Optimized
XSAVESSave Processor Extended States Supervisor
XSETBVSet Extended Control Register
XTESTTest If In Transactional Execution