SSE4.1 Instructions
46 x86 instructions in this extension - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| blendpd | BLENDPD xmm1, xmm2/m128, imm8 | SSE4.1 | Selects doubles from two sources based on immediate mask. |
| blendps | BLENDPS xmm1, xmm2/m128, imm8 | SSE4.1 | Selects floats from two sources based on immediate mask. |
| blendvpd | BLENDVPD xmm1, xmm2/m128, <XMM0> | SSE4.1 | Blends doubles based on variable mask in XMM0. |
| blendvps | BLENDVPS xmm1, xmm2/m128, <XMM0> | SSE4.1 | Blends floats based on variable mask in XMM0. |
| dppd | DPPD xmm1, xmm2/m128, imm8 | SSE4.1 | Computes the dot product of two double vectors. |
| dpps | DPPS xmm1, xmm2/m128, imm8 | SSE4.1 | Computes the dot product of two float vectors. |
| extractps | EXTRACTPS r32/m32, xmm1, imm8 | SSE4.1 | Extracts a single float from XMM to an integer register. |
| insertps | INSERTPS xmm1, xmm2/m32, imm8 | SSE4.1 | Inserts a single float into a specific index of XMM. |
| movntdqa | MOVNTDQA xmm1, m128 | SSE4.1 | Efficiently loads 128-bits from WC memory (Streaming Load). |
| mpsadbw | MPSADBW xmm1, xmm2/m128, imm8 | SSE4.1 | Computes multiple SADs of byte blocks. |
| packusdw | PACKUSDW xmm1, xmm2/m128 | SSE4.1 | Converts signed dwords to unsigned words with saturation. |
| pblendvb | PBLENDVB xmm1, xmm2/m128, <XMM0> | SSE4.1 | Blends bytes based on variable mask in XMM0. |
| pblendw | PBLENDW xmm1, xmm2/m128, imm8 | SSE4.1 | Selects words from two sources based on immediate mask. |
| pcmpeqq | PCMPEQQ xmm1, xmm2/m128 | SSE4.1 | Checks if 64-bit integer elements are equal. |
| pextrb | PEXTRB r32/m8, xmm1, imm8 | SSE4.1 | Extracts a byte from XMM to integer register. |
| pextrd | PEXTRD r32/m32, xmm1, imm8 | SSE4.1 | Extracts a doubleword from XMM to register. |
| pextrq | PEXTRQ r64/m64, xmm1, imm8 | SSE4.1 | Extracts a quadword from XMM to register. |
| phminposuw | PHMINPOSUW xmm1, xmm2/m128 | SSE4.1 | Finds minimum word and its index. |
| pinsrb | PINSRB xmm1, r32/m8, imm8 | SSE4.1 | Inserts a byte from integer register into XMM. |
| pinsrd | PINSRD xmm1, r32/m32, imm8 | SSE4.1 | Inserts a doubleword from register to XMM. |
| pinsrq | PINSRQ xmm1, r64/m64, imm8 | SSE4.1 | Inserts a quadword from register to XMM. |
| pmaxsb | PMAXSB xmm1, xmm2/m128 | SSE4.1 | Returns maximum of signed bytes. |
| pmaxsd | PMAXSD xmm1, xmm2/m128 | SSE4.1 | Returns maximum of signed doublewords. |
| pmaxud | PMAXUD xmm1, xmm2/m128 | SSE4.1 | Returns maximum of unsigned doublewords. |
| pmaxuw | PMAXUW xmm1, xmm2/m128 | SSE4.1 | Returns maximum of unsigned words. |
| pminsb | PMINSB xmm1, xmm2/m128 | SSE4.1 | Returns minimum of signed bytes. |
| pminsd | PMINSD xmm1, xmm2/m128 | SSE4.1 | Returns minimum of signed doublewords. |
| pminud | PMINUD xmm1, xmm2/m128 | SSE4.1 | Returns minimum of unsigned doublewords. |
| pminuw | PMINUW xmm1, xmm2/m128 | SSE4.1 | Returns minimum of unsigned words. |
| pmovsxbq | PMOVSXBQ xmm1, xmm2/m16 | SSE4.1 | Sign extends 8-bit integers to 64-bit. |
| pmovsxbw | PMOVSXBW xmm1, xmm2/m64 | SSE4.1 | Sign extends 8-bit integers to 16-bit. |
| pmovsxdq | PMOVSXDQ xmm1, xmm2/m64 | SSE4.1 | Sign extends 32-bit integers to 64-bit. |
| pmovsxwd | PMOVSXWD xmm1, xmm2/m64 | SSE4.1 | Sign extends 16-bit integers to 32-bit. |
| pmovsxwq | PMOVSXWQ xmm1, xmm2/m32 | SSE4.1 | Sign extends 16-bit integers to 64-bit. |
| pmovzxbd | PMOVZXBD xmm1, xmm2/m32 | SSE4.1 | Zero extends 8-bit integers to 32-bit. |
| pmovzxbq | PMOVZXBQ xmm1, xmm2/m16 | SSE4.1 | Zero extends 8-bit integers to 64-bit. |
| pmovzxbw | PMOVZXBW xmm1, xmm2/m64 | SSE4.1 | Zero extends 8-bit integers to 16-bit. |
| pmovzxdq | PMOVZXDQ xmm1, xmm2/m64 | SSE4.1 | Zero extends 32-bit integers to 64-bit. |
| pmovzxwd | PMOVZXWD xmm1, xmm2/m64 | SSE4.1 | Zero extends 16-bit integers to 32-bit. |
| pmovzxwq | PMOVZXWQ xmm1, xmm2/m32 | SSE4.1 | Zero extends 16-bit integers to 64-bit. |
| pmulld | PMULLD xmm1, xmm2/m128 | SSE4.1 | Multiplies 32-bit integers, stores low 32-bit result. |
| ptest | PTEST xmm1, xmm2/m128 | SSE4.1 | Bitwise compare of 128-bit value (AND) setting flags. |
| roundpd | ROUNDPD xmm1, xmm2/m128, imm8 | SSE4.1 | Rounds all packed doubles according to immediate mode. |
| roundps | ROUNDPS xmm1, xmm2/m128, imm8 | SSE4.1 | Rounds all packed floats according to immediate mode. |
| roundsd | ROUNDSD xmm1, xmm2/m64, imm8 | SSE4.1 | Rounds low double according to immediate mode. |
| roundss | ROUNDSS xmm1, xmm2/m32, imm8 | SSE4.1 | Rounds low float according to immediate mode. |