Instruction
SHL
Shifts an operand left, filling with zeros (SAL is the same instruction); APX adds three-operand forms and forms that leave the flags unchanged.
- Extensions
- Mnemonics
- SHL, SAL
- Forms
- 60 (24 Legacy, 36 EVEX)
- Data
- Intel XED v2026.08.23
Forms
| Instruction | Encoding | Requires |
|---|---|---|
SHL m8, imm8
SHL_MEMb_IMMb_C0r4 | C0 /4 ib | Base instruction set |
SHL r8, imm8
SHL_GPR8_IMMb_C0r4 | C0 /4 ib | Base instruction set |
SHL m8, imm8
SHL_MEMb_IMMb_C0r6 | C0 /6 ib | Base instruction set |
SHL r8, imm8
SHL_GPR8_IMMb_C0r6 | C0 /6 ib | Base instruction set |
SHL m16/32/64, imm8
SHL_MEMv_IMMb_C1r4 | C1 /4 ib | Base instruction set |
SHL r16/32/64, imm8
SHL_GPRv_IMMb_C1r4 | C1 /4 ib | Base instruction set |
SHL m16/32/64, imm8
SHL_MEMv_IMMb_C1r6 | C1 /6 ib | Base instruction set |
SHL r16/32/64, imm8
SHL_GPRv_IMMb_C1r6 | C1 /6 ib | Base instruction set |
SHL m8, imm8
SHL_MEMb_ONE_D0r4 | D0 /4 | Base instruction set |
SHL r8, imm8
SHL_GPR8_ONE_D0r4 | D0 /4 | Base instruction set |
SHL m8, imm8
SHL_MEMb_ONE_D0r6 | D0 /6 | Base instruction set |
SHL r8, imm8
SHL_GPR8_ONE_D0r6 | D0 /6 | Base instruction set |
SHL m16/32/64, imm8
SHL_MEMv_ONE_D1r6 | D1 /6 | Base instruction set |
SHL m16/32/64, imm8
SHL_MEMv_ONE_D1r4 | D1 /4 | Base instruction set |
SHL r16/32/64, imm8
SHL_GPRv_ONE_D1r4 | D1 /4 | Base instruction set |
SHL r16/32/64, imm8
SHL_GPRv_ONE_D1r6 | D1 /6 | Base instruction set |
SHL m8, CL
SHL_MEMb_CL_D2r4 | D2 /4 | Base instruction set |
SHL r8, CL
SHL_GPR8_CL_D2r4 | D2 /4 | Base instruction set |
SHL m8, CL
SHL_MEMb_CL_D2r6 | D2 /6 | Base instruction set |
SHL r8, CL
SHL_GPR8_CL_D2r6 | D2 /6 | Base instruction set |
SHL m16/32/64, CL
SHL_MEMv_CL_D3r4 | D3 /4 | Base instruction set |
SHL r16/32/64, CL
SHL_GPRv_CL_D3r4 | D3 /4 | Base instruction set |
SHL m16/32/64, CL
SHL_MEMv_CL_D3r6 | D3 /6 | Base instruction set |
SHL r16/32/64, CL
SHL_GPRv_CL_D3r6 | D3 /6 | Base instruction set |
SHL r8, imm8
SHL_GPR8i8_IMM8_APX | EVEX.LLZ.NP.MAP4.WIG C0 /4 ibEVEX.LLZ.NP.MAP4.WIG C0 /6 ib | APX_F |
SHL m8, imm8
SHL_MEMi8_IMM8_APX | EVEX.LLZ.NP.MAP4.WIG C0 /4 ibEVEX.LLZ.NP.MAP4.WIG C0 /6 ib | APX_F |
SHL r8, imm8 NF
SHL_GPR8i8_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.WIG C0 /4 ib NF=1EVEX.LLZ.NP.MAP4.WIG C0 /6 ib NF=1 | APX_F + APX_NCI_NDD_NF |
SHL m8, imm8 NF
SHL_MEMi8_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.WIG C0 /4 ib NF=1EVEX.LLZ.NP.MAP4.WIG C0 /6 ib NF=1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, r16/32/64, imm8 NDD NF optional
SHL_GPRv_GPRv_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D1 /6 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.SCALABLE D1 /4 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, m16/32/64, imm8 NDD NF optional
SHL_GPRv_MEMv_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D1 /6 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.SCALABLE D1 /4 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r8, CL
SHL_GPR8i8_CL_APX | EVEX.LLZ.NP.MAP4.WIG D2 /4EVEX.LLZ.NP.MAP4.WIG D2 /6 | APX_F |
SHL m8, CL
SHL_MEMi8_CL_APX | EVEX.LLZ.NP.MAP4.WIG D2 /4EVEX.LLZ.NP.MAP4.WIG D2 /6 | APX_F |
SHL r8, CL NF
SHL_GPR8i8_CL_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D2 /4 NF=1EVEX.LLZ.NP.MAP4.WIG D2 /6 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL m8, CL NF
SHL_MEMi8_CL_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D2 /4 NF=1EVEX.LLZ.NP.MAP4.WIG D2 /6 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL r8, r8, CL NDD NF optional
SHL_GPR8i8_GPR8i8_CL_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D2 /4 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.WIG D2 /6 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r8, m8, CL NDD NF optional
SHL_GPR8i8_MEMi8_CL_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D2 /4 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.WIG D2 /6 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, CL
SHL_GPRv_CL_APX | EVEX.LLZ.NP.MAP4.SCALABLE D3 /4EVEX.LLZ.NP.MAP4.SCALABLE D3 /6 | APX_F |
SHL m16/32/64, CL
SHL_MEMv_CL_APX | EVEX.LLZ.NP.MAP4.SCALABLE D3 /4EVEX.LLZ.NP.MAP4.SCALABLE D3 /6 | APX_F |
SHL r16/32/64, CL NF
SHL_GPRv_CL_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D3 /4 NF=1EVEX.LLZ.NP.MAP4.SCALABLE D3 /6 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL m16/32/64, CL NF
SHL_MEMv_CL_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D3 /4 NF=1EVEX.LLZ.NP.MAP4.SCALABLE D3 /6 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL r8, imm8
SHL_GPR8i8_ONE_APX | EVEX.LLZ.NP.MAP4.WIG D0 /6EVEX.LLZ.NP.MAP4.WIG D0 /4 | APX_F |
SHL m8, imm8
SHL_MEMi8_ONE_APX | EVEX.LLZ.NP.MAP4.WIG D0 /6EVEX.LLZ.NP.MAP4.WIG D0 /4 | APX_F |
SHL r8, imm8 NF
SHL_GPR8i8_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D0 /6 NF=1EVEX.LLZ.NP.MAP4.WIG D0 /4 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL m8, imm8 NF
SHL_MEMi8_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D0 /6 NF=1EVEX.LLZ.NP.MAP4.WIG D0 /4 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, r16/32/64, CL NDD NF optional
SHL_GPRv_GPRv_CL_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D3 /4 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.SCALABLE D3 /6 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, m16/32/64, CL NDD NF optional
SHL_GPRv_MEMv_CL_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D3 /4 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.SCALABLE D3 /6 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r8, r8, imm8 NDD NF optional
SHL_GPR8i8_GPR8i8_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.WIG C0 /4 ib ND=1 NF=0/1EVEX.LLZ.NP.MAP4.WIG C0 /6 ib ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r8, m8, imm8 NDD NF optional
SHL_GPR8i8_MEMi8_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.WIG C0 /4 ib ND=1 NF=0/1EVEX.LLZ.NP.MAP4.WIG C0 /6 ib ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, imm8
SHL_GPRv_IMM8_APX | EVEX.LLZ.NP.MAP4.SCALABLE C1 /4 ibEVEX.LLZ.NP.MAP4.SCALABLE C1 /6 ib | APX_F |
SHL m16/32/64, imm8
SHL_MEMv_IMM8_APX | EVEX.LLZ.NP.MAP4.SCALABLE C1 /4 ibEVEX.LLZ.NP.MAP4.SCALABLE C1 /6 ib | APX_F |
SHL r16/32/64, imm8 NF
SHL_GPRv_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE C1 /4 ib NF=1EVEX.LLZ.NP.MAP4.SCALABLE C1 /6 ib NF=1 | APX_F + APX_NCI_NDD_NF |
SHL m16/32/64, imm8 NF
SHL_MEMv_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE C1 /4 ib NF=1EVEX.LLZ.NP.MAP4.SCALABLE C1 /6 ib NF=1 | APX_F + APX_NCI_NDD_NF |
SHL r8, r8, imm8 NDD NF optional
SHL_GPR8i8_GPR8i8_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D0 /4 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.WIG D0 /6 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r8, m8, imm8 NDD NF optional
SHL_GPR8i8_MEMi8_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.WIG D0 /4 ND=1 NF=0/1EVEX.LLZ.NP.MAP4.WIG D0 /6 ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, r16/32/64, imm8 NDD NF optional
SHL_GPRv_GPRv_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE C1 /4 ib ND=1 NF=0/1EVEX.LLZ.NP.MAP4.SCALABLE C1 /6 ib ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, m16/32/64, imm8 NDD NF optional
SHL_GPRv_MEMv_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE C1 /4 ib ND=1 NF=0/1EVEX.LLZ.NP.MAP4.SCALABLE C1 /6 ib ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
SHL r16/32/64, imm8
SHL_GPRv_ONE_APX | EVEX.LLZ.NP.MAP4.SCALABLE D1 /4EVEX.LLZ.NP.MAP4.SCALABLE D1 /6 | APX_F |
SHL m16/32/64, imm8
SHL_MEMv_ONE_APX | EVEX.LLZ.NP.MAP4.SCALABLE D1 /4EVEX.LLZ.NP.MAP4.SCALABLE D1 /6 | APX_F |
SHL r16/32/64, imm8 NF
SHL_GPRv_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D1 /4 NF=1EVEX.LLZ.NP.MAP4.SCALABLE D1 /6 NF=1 | APX_F + APX_NCI_NDD_NF |
SHL m16/32/64, imm8 NF
SHL_MEMv_ONE_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE D1 /4 NF=1EVEX.LLZ.NP.MAP4.SCALABLE D1 /6 NF=1 | APX_F + APX_NCI_NDD_NF |
CPUID and processors
Each form belongs to an XED ISA set. A form can be used when the processor reports every CPUID bit of one of its ISA set's alternatives.
| ISA set | CPUID | Processors in XED |
|---|---|---|
I186 | No CPUID bit: part of the base instruction set. | Every x86-64 processor in XED’s model |
I86 | No CPUID bit: part of the base instruction set. | Every x86-64 processor in XED’s model |
APX_F | APX_F | Nova Lake, Diamond Rapids |
APX_F_N3 | APX_F + APX_NCI_NDD_NF | Nova Lake, Diamond Rapids |
More General-purpose instructions
- NEG
- NOP
- NOT
- OR
- OUT
- OUTS
- PAUSE
- POP
- POPA
- POPF
- PUSH
- PUSHA
- PUSHF
- RCL
- RCR
- RET
- ROL
- ROR
- SALC
- SAR
- SBB
- SCAS
- SETcc
- SHLD
- SHR
- SHRD
- STC
- STD
- STI
- STOS
- SUB
- TEST
- UD0
- UD1
- UD2
- UDB
- XADD
- XCHG
- XLAT
- XOR
All 109 General-purpose instructions
More APX instructions
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model. - Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-092, June 2026)
- Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026)
- Intel Advanced Performance Extensions (Intel APX) Architecture Specification, revision 7.0 (July 2025)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.