0

Should I look up both Intel and AMD x86 Instruction Set reference for CPUID bits meaning?

This makes me suspicious (from Wikipedia):

ABM is only implemented as a single instruction set by AMD; all AMD processors support both instructions or neither. Intel considers POPCNT as part of SSE4.2, and LZCNT as part of BMI1. POPCNT has a separate CPUID flag; however, Intel uses AMD's ABM flag to indicate LZCNT support (since LZCNT completes the ABM)

The question is only about CPUID meaning.

I think that instructions themselves are either implemented or not, but opcodes don't have distinct meanings, so for instructions themselves I guess one reference is enough. Regarding performance expectations, sure that exact CPU family matters, not just vendor.

Alex Guteniev
  • 12,039
  • 2
  • 34
  • 79

1 Answers1

1

ABM is just 2 instructions, popcnt and lzcnt. All Intel CPUs that set that bit support both. That's why they write "(since LZCNT completes the ABM)".

You can just check that bit without caring about vendor.

I think in theory vendors don't want to promise that every other vendor will use feature bits the same way, but in practice all the feature bits for ISA extensions are universal and mean the same thing regardless of vendor. (I think.)

Peter O.
  • 32,158
  • 14
  • 82
  • 96
Peter Cordes
  • 328,167
  • 45
  • 605
  • 847