
This means that any detection used in init() functions will not contain these flags.Ĩ 17:04:40 AMD Ryzen 9 3950X 16-Core ProcessorĨ 17:04:40 Microarchitecture level 3 is supported. This must be called before flag.Parse() AND after the flags have been parsed Detect() must be called. It is possible to add flags that affects cpu detection.įor this the Flags() command is provided. No additional information is currently available. Note that currently only features are detected on ARM, It will detect CPU features, but may crash if the OS doesn't intercept the calls.Ī -cpu.arm flag for detecting unsafe ARM features can be added. Not all operating systems provide ARM features directlyĪnd there is no safe way to do so for the rest.Ĭurrently arm64/linux and arm64/freebsd should be quite reliable.Īrm64/darwin adds features expected from the M1 processor, but a lot remains undetected.Ī DetectARM() can be used if you are able to control your deployment, So even if your host supports a feature it may not be visible on guests. Note that hypervisors may not pass through all CPU features through to the guest OS, Note that for some cpu/os combinations some features will not be detected.Īmd64 has rather good support and should work reliably on all platforms.

This can be using with (f) to quickly test if all features are supported.


To test a larger number of features, they can be combined using f := CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SYSCALL, SSE, SSE2), etc. Use () to check for CPU features.Ī faster () is provided which will usually be inlined by the gc compiler. The cpuid.CPU provides access to CPU features. Name: AMD Ryzen 9 3950X 16-Core Processorįeatures: ADX,AESNI,AVX,AVX2,BMI1,BMI2,CLMUL,CMOV,CX16,F16C,FMA3,HTT,HYPERVISOR,LZCNT,MMX,MMXEXT,NX,POPCNT,RDRAND,RDSEED,RDTSCP,SHA,SSE,SSE2,SSE3,SSE4,SSE42,SSE4A,SSSE3
