DOKK / manpages / debian 12 / allegro4-doc / cpu_capabilities.3alleg4.en
cpu_capabilities(3alleg4) Allegro manual cpu_capabilities(3alleg4)

cpu_capabilities - Contains the capability flags of the CPU. Allegro game programming library.

#include <allegro.h>

extern int cpu_capabilities;

Contains CPU flags indicating what features are available on the current CPU. The flags can be any combination of these:


CPU_ID - Indicates that the "cpuid" instruction is
available. If this is set, then all Allegro CPU
variables are 100% reliable, otherwise there
may be some mistakes.
CPU_FPU - An FPU is available.
CPU_IA64 - Running on Intel 64 bit CPU
CPU_AMD64 - Running on AMD 64 bit CPU
CPU_MMX - Intel MMX instruction set is available.
CPU_MMXPLUS - Intel MMX+ instruction set is available.
CPU_SSE - Intel SSE instruction set is available.
CPU_SSE2 - Intel SSE2 instruction set is available.
CPU_SSE3 - Intel SSE3 instruction set is available.
CPU_3DNOW - AMD 3DNow! instruction set is available.
CPU_ENH3DNOW - AMD Enhanced 3DNow! instruction set is
available.
CPU_CMOV - Pentium Pro "cmov" instruction is available.
You can check for multiple features by OR-ing the flags together. For example, to check if the CPU has an FPU and MMX instructions available, you'd do:


if ((cpu_capabilities & (CPU_FPU | CPU_MMX)) ==
(CPU_FPU | CPU_MMX)) {
printf("CPU has both an FPU and MMX instructions!\n");
}
You can read this variable after you have called check_cpu() (which is automatically called by allegro_init()).

check_cpu(3alleg4), cpu_vendor(3alleg4), cpu_family(3alleg4), cpu_model(3alleg4), cpu_capabilities(3alleg4), allegro_init(3alleg4)

version 4.4.3 Allegro