Comment by wtallis

Comment by wtallis 10 days ago

3 replies

Am I missing something, or does SIMDe only help for cases where a program is using instruction intrinsics, and it doesn't do anything to address cases where the compiler decides to use SIMD as a result of auto-vectorization?

pabs3 9 days ago

Thats correct, but usually compilers don't do that if you use the CPU baseline.

  • wtallis 9 days ago

    > but usually compilers don't do that if you use the CPU baseline

    That's a problem that people are trying to solve by not using an ancient CPU baseline. Do you have a reasonable proposal for how else we should enable widespread use of hardware functionality that's less than two decades old?

    • pabs3 9 days ago

      The compiler could auto-enable function multi-versioning (FMV) for functions where auto-vectorisation gets triggered. At program start, FMV checks which instructions are available and updates function pointers to the right functions. Things like glibc use FMV to switch things like memcpy to SIMD-optimised versions.