I'm writing a performance critical application in C
that exploits the use of SIMD available on most processors out there. I have made my code to be compilable on multiple platforms, whether it be ARM or x86, but what are the commonly used processors/chips out there, that lack SIMD and on which my application would be inefficient?
I can't find a list of processors online that lacks SIMD, but a handful of commonly used ones, would be sufficient to convince me, that I should make a SIMD-less version of my project...
So, are there ways to detect if SIMD is available at runtime?
If I am on x86 and using GNU GCC, then I can use __builtin_cpu_supports("...")
to check if a particular feature like avx
, sse
is available.
But I cant get an equivalent builtin to check for ARM's neon on my CLANG compiler.
I don't know if such a builtin is available.