Instruction
TZCNT
Counts the trailing zero bits of an operand; APX adds a form that leaves the flags unchanged.
Forms
| Instruction | Encoding | Requires |
|---|---|---|
TZCNT r16/32/64, m16/32/64
TZCNT_GPRv_MEMv | F3 0F BC /r | BMI1 |
TZCNT r16/32/64, r16/32/64
TZCNT_GPRv_GPRv | F3 0F BC /r | BMI1 |
TZCNT r16/32/64, r16/32/64
TZCNT_GPRv_GPRv_APX | EVEX.LLZ.NP.MAP4.SCALABLE F4 /r | APX_F + BMI1 |
TZCNT r16/32/64, m16/32/64
TZCNT_GPRv_MEMv_APX | EVEX.LLZ.NP.MAP4.SCALABLE F4 /r | APX_F + BMI1 |
TZCNT r16/32/64, r16/32/64 NF
TZCNT_GPRv_GPRv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE F4 /r NF=1 | APX_F + APX_NCI_NDD_NF + BMI1 |
TZCNT r16/32/64, m16/32/64 NF
TZCNT_GPRv_MEMv_APX_N3 | EVEX.LLZ.NP.MAP4.SCALABLE F4 /r NF=1 | APX_F + APX_NCI_NDD_NF + BMI1 |
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 |
|---|---|---|
BMI1 | BMI1 | Haswell, Broadwell, Skylake, Comet Lake, Cannon Lake, Ice Lake (client), Tiger Lake, Alder Lake, Arrow Lake, Panther Lake, Nova Lake, Skylake-SP, Cascade Lake, Cooper Lake, Ice Lake (server), Sapphire Rapids, Emerald Rapids, Granite Rapids, Diamond Rapids, Sierra Forest, Clearwater Forest, Knights Landing, Knights Mill Note: XED's Piledriver adds TBM and FMA to Bulldozer but not BMI1, and its Zen chips inherit that gap; GCC's -march=bdver2 and -march=znver1 and later include BMI1. |
APX_F_BMI1 | APX_F + BMI1 | Nova Lake, Diamond Rapids |
APX_F_BMI1_N3 | APX_F + APX_NCI_NDD_NF + BMI1 | Nova Lake, Diamond Rapids |
More BMI1 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 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.