Instruction
IMUL
Multiplies signed integers in one-, two- and three-operand forms; APX adds new-destination, flag-preserving and zero-upper immediate forms.
- Extensions
- Forms
- 36 (10 Legacy, 26 EVEX)
- Data
- Intel XED v2026.08.23
Forms
| Instruction | Encoding | Requires |
|---|---|---|
IMUL m8
IMUL_MEMb | F6 /5 | Base instruction set |
IMUL r8
IMUL_GPR8 | F6 /5 | Base instruction set |
IMUL m16/32/64
IMUL_MEMv | F7 /5 | Base instruction set |
IMUL r16/32/64
IMUL_GPRv | F7 /5 | Base instruction set |
IMUL r16/32/64, m16/32/64, imm16/32
IMUL_GPRv_MEMv_IMMz | 69 /r iw/id | Base instruction set |
IMUL r16/32/64, r16/32/64, imm16/32
IMUL_GPRv_GPRv_IMMz | 69 /r iw/id | Base instruction set |
IMUL r16/32/64, m16/32/64, imm8
IMUL_GPRv_MEMv_IMMb | 6B /r ib | Base instruction set |
IMUL r16/32/64, r16/32/64, imm8
IMUL_GPRv_GPRv_IMMb | 6B /r ib | Base instruction set |
IMUL r16/32/64, m16/32/64
IMUL_GPRv_MEMv | 0F AF /r | Base instruction set |
IMUL r16/32/64, r16/32/64
IMUL_GPRv_GPRv | 0F AF /r | Base instruction set |
IMUL r16/32/64, r16/32/64, imm16/32
IMUL_GPRv_GPRv_IMMz_APX | EVEX.LLZ.NP.MAP4.SCALABLE 69 /r iw/id | APX_F |
IMUL r16/32/64, m16/32/64, imm16/32
IMUL_GPRv_MEMv_IMMz_APX | EVEX.LLZ.NP.MAP4.SCALABLE 69 /r iw/id | APX_F |
IMUL r16/32/64, r16/32/64, imm16/32 ZU NF optional
IMUL_GPRv_GPRv_IMMz_APX_N3_ZU | EVEX.LLZ.NP.MAP4.SCALABLE 69 /r iw/id ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, m16/32/64, imm16/32 ZU NF optional
IMUL_GPRv_MEMv_IMMz_APX_N3_ZU | EVEX.LLZ.NP.MAP4.SCALABLE 69 /r iw/id ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, r16/32/64, imm16/32 NF
IMUL_GPRv_GPRv_IMMz_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE 69 /r iw/id NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, m16/32/64, imm16/32 NF
IMUL_GPRv_MEMv_IMMz_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE 69 /r iw/id NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64
IMUL_GPRv_APX | EVEX.LLZ.NP.MAP4.SCALABLE F7 /5 | APX_F |
IMUL m16/32/64
IMUL_MEMv_APX | EVEX.LLZ.NP.MAP4.SCALABLE F7 /5 | APX_F |
IMUL r16/32/64 NF
IMUL_GPRv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE F7 /5 NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL m16/32/64 NF
IMUL_MEMv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE F7 /5 NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, r16/32/64, imm8
IMUL_GPRv_GPRv_IMM8_APX | EVEX.LLZ.NP.MAP4.SCALABLE 6B /r ib | APX_F |
IMUL r16/32/64, m16/32/64, imm8
IMUL_GPRv_MEMv_IMM8_APX | EVEX.LLZ.NP.MAP4.SCALABLE 6B /r ib | APX_F |
IMUL r16/32/64, r16/32/64, imm8 ZU NF optional
IMUL_GPRv_GPRv_IMM8_APX_N3_ZU | EVEX.LLZ.NP.MAP4.SCALABLE 6B /r ib ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, m16/32/64, imm8 ZU NF optional
IMUL_GPRv_MEMv_IMM8_APX_N3_ZU | EVEX.LLZ.NP.MAP4.SCALABLE 6B /r ib ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, r16/32/64, imm8 NF
IMUL_GPRv_GPRv_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE 6B /r ib NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, m16/32/64, imm8 NF
IMUL_GPRv_MEMv_IMM8_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE 6B /r ib NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, r16/32/64
IMUL_GPRv_GPRv_APX | EVEX.LLZ.NP.MAP4.SCALABLE AF /r | APX_F |
IMUL r16/32/64, m16/32/64
IMUL_GPRv_MEMv_APX | EVEX.LLZ.NP.MAP4.SCALABLE AF /r | APX_F |
IMUL r16/32/64, r16/32/64 NF
IMUL_GPRv_GPRv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE AF /r NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, m16/32/64 NF
IMUL_GPRv_MEMv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE AF /r NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, r16/32/64, r16/32/64 NDD NF optional
IMUL_GPRv_GPRv_GPRv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE AF /r ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
IMUL r16/32/64, r16/32/64, m16/32/64 NDD NF optional
IMUL_GPRv_GPRv_MEMv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE AF /r ND=1 NF=0/1 | APX_F + APX_NCI_NDD_NF |
IMUL r8
IMUL_GPR8i8_APX | EVEX.LLZ.NP.MAP4.WIG F6 /5 | APX_F |
IMUL m8
IMUL_MEMi8_APX | EVEX.LLZ.NP.MAP4.WIG F6 /5 | APX_F |
IMUL r8 NF
IMUL_GPR8i8_APX_N3 | EVEX.LLZ.NP.MAP4.WIG F6 /5 NF=1 | APX_F + APX_NCI_NDD_NF |
IMUL m8 NF
IMUL_MEMi8_APX_N3 | EVEX.LLZ.NP.MAP4.WIG F6 /5 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 |
|---|---|---|
I86 | No CPUID bit: part of the base instruction set. | Every x86-64 processor in XED’s model |
I186 | 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
- CDQ
- CDQE
- CLC
- CLD
- CLI
- CMC
- CMP
- CMPS
- CMPXCHG
- CMPXCHG8B
- CPUID
- CQO
- CWD
- CWDE
- DAA
- DAS
- DEC
- DIV
- ENTER
- IDIV
- IN
- INC
- INS
- INT
- INT1
- INT3
- INTO
- IRET
- Jcc
- JCXZ
- JECXZ
- JMP
- JRCXZ
- LDS
- LEA
- LEAVE
- LES
- LFS
- LGS
- LODS
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.